C++ 程序不响应任务栏中的平铺/级联窗口

标签 c++ windows winapi wtl

我有一个复杂的 C++ 程序(老式 Win32 和 WTL 的混合体),它不响应任何任务栏平铺/级联请求(即右键单击任务栏并选择“Cascade Windows”或“Show window side by边”)。当我使用 spy++ 时,我发现我的窗口都没有收到任何窗口消息,而其他程序(在本例中为 Firefox)收到一系列 WM_GETMINMAXINFO、WM_SIZE、WM_PAINT ...

我的框架窗口的样式为 WS_OVERLAPPEDWINDOW。在创建框架窗口之前,我创建了几个隐藏窗口。我已经在多个不同的操作系统上进行了测试,并且症状是相同的。 Windows shell 向我的框架窗口发送消息是否有任何限制或先决条件?

最佳答案

Windows 将消息发送到由任务栏按钮表示的窗口。

在您的应用程序中,我在这里猜测了一下,它是隐藏窗口之一,由任务栏按钮表示。窗口管理器不会将任何这些消息发送到隐藏窗口。

您可以通过将主窗口设置为任务栏中显示的窗口来解决该问题。您可以在标题为 Window Features 的优秀 MSDN 主题中阅读有关哪些窗口出现在任务栏中的详细信息。 .

关于C++ 程序不响应任务栏中的平铺/级联窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629177/

相关文章:

c++ - Curlpp,请求数据不完整

c++ - Windows 在不同线程中处理 CTRL+C?

c++ - 具有混合属性的烦人的类层次结构

c - 构建 Win32 GUI 代码

c++ - C++:为什么掷骰子偶数时我的骰子掷骰函数只返回偶数整数?

c# - 在 C# 中使用/或\\for 文件夹路径

windows - 如何在 Powershell 和 nano 下保存 git commit 消息? (Ctrl+O 无效)

windows - 我怎样才能让 gVim (Windows) 为我的插件使用 "home\.vim"?

windows - 使用 windows com 端口发送中断字节

c++ - 为什么 SetMenuInfo 在 Windows 7 下不起作用?