如何在任务栏中为简单的win32对话框添加图标?

时间:2014-03-04 12:02:27

标签: winapi dialog icons

我有一个非常简单的应用程序,它有几个按钮和文本字段。我希望能够为它添加一个图标,因为当它落后于其他窗口时,你无法看到它是否正在运行。这样做最简单的方法是什么?

我尝试创建一个隐藏有效的窗口,但是当你点击任务栏图标时你可以看到其他窗口闪烁,我似乎无法将它集中在对话框上。

1 个答案:

答案 0 :(得分:4)

我认为根本问题在于你有一个隐藏的顶级窗口,它拥有你的对话框。该对话框充当主窗口,但任务栏显示与隐藏窗口关联的按钮。

所以我想你需要做的就是完全删除隐藏的窗口。这意味着摆脱RegisterClassCreateWindow来电。

我假设您显示对话框无模式。在这种情况下,您使用CreateDialog和ShowWindow来显示它。特别注意文档的这一部分:

  

CreateDialog返回后,应用程序使用ShowWindow函数显示对话框(如果尚未显示)。应用程序使用DestroyWindow函数销毁对话框。要支持键盘导航和其他对话框功能,对话框的消息循环必须调用IsDialogMessage函数。

当然,如果你以模态方式显示对话框,你可以继续这样做。在这种情况下,您的WinMain功能非常简单。这只是对DialogBox的调用。不需要消息循环,因为模态对话框的消息循环处理消息。