windows - Win32 C++ - 恢复窗口时执行某些操作,哪条消息?

标签 windows winapi

因此,我有一个使用纯 WinAPI 的基于对话框的应用程序。有一个主对话框,然后是多个其他对话框,它们是工具窗口。这些工具窗口旨在自由 float ,用户可以拖动、隐藏和显示它们,但它们没有任务栏条目。这是我的意图,但问题是,当我从主窗口切换到另一个应用程序时,然后单击主窗口的任务栏条目,主窗口会显示,但工具窗口不会。它们隐藏在主窗口后面,有时隐藏在其他应用程序的窗口后面,在移动所有最顶层的窗口并找到工具窗口之前,您无法使用它们。

因此,我试图解决这个问题的方法是,当用户将窗口从最小化状态恢复时,我想枚举所有工具窗口并将它们放在最前面,可能是通过调用 SetActiveWindow().

但是当窗口恢复时会发送什么消息呢?我在想 WM_SHOW 或 WM_RESTORE,但它们不存在。

另一个问题,如果您回答这个问题,第一个问题就无关紧要了,因为我将不再需要使用该解决方法:是否有更好的方法将所有工具窗口置于最前面?

最佳答案

为工具窗口提供 WS_POPUP 样式(不是 WS_OVERLAPPED),并使主窗口成为它们的父窗口(严格来说是它们的所有者) window )。这样工具窗口将保留在主窗口的顶部。这可能(也可能不是)您想要的。

关于windows - Win32 C++ - 恢复窗口时执行某些操作,哪条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12885264/

相关文章:

windows - 如何从命令提示符以管理员身份打开应用程序?

windows - 为了可读性,我应该在 Notepad++ 中使用什么语言选项和我的 Windows 主机文件?

c++ - ENABLE_VIRTUAL_TERMINAL_PROCESSING 和 DISABLE_NEWLINE_AUTO_RETURN 失败

c++ - 标题栏中的汉字

windows - 限制鼠标在指定窗口句柄上移动

c++ - 2 智能感知 : argument of type "const char *" is incompatible with parameter of type "LPCWSTR"

windows - 如何从 Windows 查询 TXT 和 SRV 记录?

c - Windows C API : Create and name a new process that sleeps

c++ - 为什么我会收到这么多错误,为什么它告诉我窗口未定义?不会编译

java.lang.UnsatisfiedLinkError : Error looking up function 'GetModuleFileNameEx' 错误