我有三个使用 OpenGL 库从 Visual C++ 编译的可执行文件。尽管它们之间的窗口创建方式没有什么不同,但其中一个在我运行它时会自动获得焦点,而另外两个则要求用户在获得焦点之前单击窗口。
我正在构建一个 WIN32 应用程序作为菜单来运行不同的 .exe 文件,在这里我使用所有通常的建议来尝试聚焦窗口(SetFocus(hWnd)SetActiveWindow(hWnd)),但无济于事.
有什么建议吗?
实际上,您想要的是SetForegroundWindow (...)
,因为除了设置活动窗口之外,这还会将您的应用程序带到前台。
SetActiveWindow (hWnd)
如果您的应用程序在前台,只会完成您想要的,如果您有一个多文档应用程序并且想要在窗口之间切换,它会很有用。
这是我在 Win32 窗口管理系统中初始化/调整渲染上下文大小时使用的相关代码选择:
ShowWindow (hWndRender, SW_SHOW);
SetForegroundWindow (hWndRender);
SetFocus (hWndRender);