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

all*_*nmb 4 winapi icons dialog

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

我尝试创建一个隐藏的窗口,这有点工作,但是当您单击任务栏图标时,您可以看到其他窗口闪烁,并且我似乎无法使其聚焦于对话框。

Dav*_*nan 6

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

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

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

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

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