当在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. 使用NativeWindow显示任务栏项目
- 5. C#显示任务栏缩略图上的按钮
- 6. 在任务栏上显示标题按钮的进度
- 7. 如何使用Delphi 7在状态/任务栏按钮中显示进度?
- 8. NAvigationController栏按钮不显示
- 9. 显示任务ALT + TAB,但没有显示在任务栏
- 10. 显示片段时在操作栏中显示按钮
- 11. Group类似的任务栏按钮
- 12. 使用Javascript显示按钮按钮
- 13. 使用SurfaceView时不显示按钮
- 14. AlertDialog在使用按钮时不显示
- 15. 使用包时不显示按钮()
- 16. 运行时导航栏上没有显示栏按钮
- 17. 如何使用视觉样式绘制任务栏按钮?
- 18. 如果设置为合并,任务栏按钮/图标显示不正确
- 19. 如何取消任务栏按钮和显示系统托盘图标
- 20. 集中于应用程序时无法显示任务栏
- 21. 工具栏(后退按钮不显示)
- 22. CKEditor - 按钮切换显示工具栏
- 23. 按钮不显示在导航栏项
- 24. 隐藏并显示栏按钮项目
- 25. 导航栏按钮不显示
- 26. 没有显示工具栏按钮
- 27. CKEDITOR工具栏按钮不会显示
- 28. 导航栏按钮不显示
- 29. iPhone UINavigationController栏按钮不显示
- 30. SWT WizardDialog未显示在任务栏
好的,那么有没有办法使用WS_EX_TOOLWINDOW风格,但使用WS_EX_APPWINDOW来显示按钮? – Dementor
@演员这两种风格不能混在一起。但是,您可以尝试使用'ITaskbarList :: AddTab()'。我更新了我的答案。 –