當在CreateWindowEx
中使用WS_EX_TOOLWINDOW標誌時,是否可以顯示任務欄按鈕?使用WS_EX_TOOLWINDOW時顯示任務欄按鈕
回答
WS_EX_APPWINDOW
樣式是無主窗口在任務欄上顯示時所必需的。
Extended Window Styles文檔明確指出,「工具窗口未出現在任務欄」中。
MSDN進一步對此進行了更詳細:
殼牌放在任務欄上的按鈕,每當應用程序創建一個無主窗口,也就是說,不具有父窗口並且具有適當的擴展樣式位(參見下面的Managing Taskbar Buttons)。
...
管理任務欄按鈕
每當應用程序創建未擁有的窗口的shell創建任務欄上的按鈕。 要確保窗口按鈕放置在任務欄上,請使用
WS_EX_APPWINDOW
擴展樣式創建一個無主窗口。要防止將窗口按鈕放置在任務欄上,請使用WS_EX_TOOLWINDOW
擴展樣式創建無主窗口。作爲替代方案,您可以創建一個隱藏窗口,並將該隱藏窗口設置爲可見窗口的所有者。只有當窗口樣式支持可見的任務欄按鈕時,Shell纔會從任務欄中刪除窗口的按鈕。如果要將窗口樣式動態地更改爲不支持可見任務欄按鈕的樣式,則必須先隱藏該窗口(通過調用
ShowWindow
和SW_HIDE
),更改窗口樣式,然後顯示該窗口。...
修改的Shell32.dll中的任務欄
Version 4.71 and later的內容添加到修改任務欄的內容的能力。 從應用程序中,您現在可以添加,刪除和激活任務欄按鈕。激活該項目不會激活窗口;它顯示在任務欄上按下的項目。
任務欄修改功能在一個組件對象模型(COM)對象(
CLSID_TaskbarList
)暴露該ITaskbarList
接口(IID_ITaskbarList
)來實現。您必須調用ITaskbarList::HrInit
方法來初始化對象。然後可以使用ITaskbarList
接口的方法修改任務欄的內容。
所以,你可能能夠使用ITaskbarList::AddTab()
爲您的工具窗口:
任何類型的窗口可以被添加到任務欄,但建議該窗口至少有
WS_CAPTION
風格。
- 1. 如何使用任務欄按鈕顯示進度條?
- 2. 將Excel用戶窗體顯示爲任務欄中的按鈕
- 3. java jdialog任務欄按鈕
- 4. 在任務欄上顯示標題按鈕的進度
- 5. 使用NativeWindow顯示任務欄項目
- 6. 如何使用Delphi 7在狀態/任務欄按鈕中顯示進度?
- 7. Group類似的任務欄按鈕
- 8. 使用SurfaceView時不顯示按鈕
- 9. 運行時導航欄上沒有顯示欄按鈕
- 10. 如何使用視覺樣式繪製任務欄按鈕?
- 11. 如何取消任務欄按鈕和顯示系統托盤圖標
- 12. CKEditor - 按鈕切換顯示工具欄
- 13. 工具欄(後退按鈕不顯示)
- 14. 按鈕不顯示在導航欄項
- 15. 集中於應用程序時無法顯示任務欄
- 16. 如何防止隱藏窗體時任務欄按鈕消失
- 17. 如何顯示任務欄通知?
- 18. CDialog不顯示在任務欄
- 19. 如何在用戶按下按鈕時顯示按鈕並顯示隨機數?
- 20. 突出顯示按鈕欄中的選定按鈕(flex)
- 21. 如何在Windows 7任務欄中顯示進度(使用Qt)?
- 22. Android任務啓用按鈕
- 23. 如何創建沒有任何窗口的任務欄按鈕?
- 24. 顯示一個沒有顯示在任務欄上的ContextMenuStrip
- 25. 顯示鍵盤時禁用按鈕
- 26. 從C++ lauch c#應用程序沒有任務欄按鈕
- 27. 隱藏其他應用程序的任務欄按鈕
- 28. Flash應用程序的任務欄按鈕?
- 29. 用於對話框的單獨任務欄按鈕
- 30. Electron BrowserWindow在關注時顯示任務欄
好的,那麼有沒有辦法使用WS_EX_TOOLWINDOW風格,但使用WS_EX_APPWINDOW來顯示按鈕? – Dementor
@演員這兩種風格不能混在一起。但是,您可以嘗試使用'ITaskbarList :: AddTab()'。我更新了我的答案。 –