我正在使用UpdateLayeredWindow
顯示一個窗口,並希望添加過渡動畫。 AnimateWindow
如果使用幻燈片或滾動效果(儘管存在一些閃爍),則適用。但是,當我嘗試使用AW_BLEND
產生淡入淡出效果時,我不僅在動畫之後失去了任何半透明效果(每個像素和整個圖像),而且還會出現默認的窗口邊框。有沒有辦法阻止邊界出現?使用分層窗口時,是否可以使用帶有AW_BLEND的AnimateWindow?
1
A
回答
2
由於我使用的是UpdateLayeredWindow
,SetLayeredWindowAttributes
不起作用。圖here非常有用。相反,我只需要在循環中調用UpdateLayeredWindow
,同時減少BLENDFUNCTION
結構的SourceConstantAlpha
成員。實際上,如果alpha值都在變化,那麼指向BLENDFUNCTION
結構的指針,分層窗口句柄和標誌是我需要傳入UpdateLayeredWindow
的唯一東西。
0
我發現成功淡入/淡出一個窗口(沒有你描述的複雜情況)的唯一方法是首先創建一個帶有WS_EX_LAYERED
擴展風格的窗口。然後我啓動一個定時器(30毫秒),通過調用像逐漸變淡的窗口:
SetLayeredWindowAttributes(0,
(BYTE)(m_nAnimationCount * WINDOW_ALPHA),
LWA_ALPHA);
其中WINDOW_ALPHA
是23(好像看上去是最好的),並且m_nAnimationCount
是從0到10(或10向計如果衰落,則爲0)。
如果你發現了一個更好的方法來做到這一點,我很樂意找出答案。
相關問題
- 1. 在OSX中使用自由形式的窗口是否可以使用窗口?
- 2. 是否可以使用phonegap打開帶有Jelly Bean風格的對話窗口?
- 3. 窗戶被塗使用分層窗口
- 4. 是否可以區分窗口拆分?
- 5. 是否可以使用Modernizr檢測視口/窗口寬度?
- 6. 是否可以使用帶有可編輯列的Gtk.TreeModelFilter?
- 7. 如何驗證窗口是使用UIAutomation的最頂層窗口?
- 8. 使用分層窗口創建平滑窗口邊界
- 9. 使用帶有窗口的套接字
- 10. 是否有可能使用Javascript觸發瀏覽器的窗口?
- 11. 是否可以在對話框彈出窗口中使用iscroll?
- 12. 是否可以使用JQuery或JavaScript更改窗口大小?
- 13. 是否可以使用值轉換器窗口屬性?
- 14. 是否可以使用XAML添加另一個窗口?
- 15. 是否可以使用JavaScript關閉瀏覽器窗口?
- 16. 是否可以使用javascript調整瀏覽器窗口大小?
- 17. 是否可以使用QML創建新窗口
- 18. 使用Tcl/Tk打開新窗口時,使窗口不可用
- 19. 從shell啓動程序時是否可以分配窗口ID?
- 20. 是否可以使用帶有XInclude標籤的通配符?
- 21. 是否可以使用帶有Webbrowser控件的ServicePointManager?
- 22. 是否可以使用帶有嵌入式Derby的EclipseLink(with persistence.xml)
- 23. 是否可以使用Twilio-csharp/TwilioRestClient發送帶有SMSMessage的cookie?
- 24. 是否可以使用帶有Ionic2 Typescript的ThemeableBrowser插件?
- 25. 是否可以使用帶有AWS數據的Pagoda Box?
- 26. 是否可以使用帶有水豚的HTTP代理?
- 27. MVVMCross:是否可以使用帶有ICommand導航的Storyboard?
- 28. 是否可以使用Microsoft JScript查詢窗口的啓用/禁用狀態?
- 29. 是否有可能使用Selenium與C#窗口包含WebBrowser對象的窗體?
- 30. 是否可以使用Selenium/Python而不產生可見窗口?我可以使用lxml嗎?
UpdateLayeredWindow和SetLayeredWindowAttributes並不真正相處: - \ – wkf 2009-07-29 23:13:08