我的应用程序(用 C++ 编写)使用 Win32(不是 MFC)通过 CreateWindowEx 创建几个窗口。主窗口以桌面为父窗口,子窗口以主窗口为父窗口。
我的问题:
- 该应用程序有一个活动的子窗口
- 我切换到另一个应用程序(每次点击,ALT+TAB 或其他,没关系)
- 我用 ALT+TAB 切换回我的应用程序
现在我的应用程序的主窗口被激活,不再是子窗口。如果我切换回单击任务栏条目,则子窗口仍处于活动状态。
这只发生在 Aero(有和没有 Glass)上。如果我激活经典的 Window Scheme,一切都像在 Windows XP 下一样(使用 ALT+TAB 切换回来使子窗口保持活动状态)。
任何建议或链接或其他资源?
(示例代码有点难以提供,因为 UI 元素被包装在具有自己的字符串等数据类型的类中。)
似乎具有经典方案的 Vista 将 WM_ACTIVATE 发送到主窗口,将另一个 WM_ACTIVATE 发送到第二个窗口(由主窗口拥有)。启用 Vista Aero 后,只有主窗口会获得 WM_ACTIVATE。奇怪的。