Winapi 确保OpenGL应用程序的窗口焦点 我有三个可执行文件,使用VisualC++编写的,使用OpenGL库。虽然它们之间在创建窗口的方式上没有什么不同,但其中一个在我运行它时自动具有焦点,另外两个要求用户在获得焦点之前单击窗口

Winapi 确保OpenGL应用程序的窗口焦点 我有三个可执行文件,使用VisualC++编写的,使用OpenGL库。虽然它们之间在创建窗口的方式上没有什么不同,但其中一个在我运行它时自动具有焦点,另外两个要求用户在获得焦点之前单击窗口,winapi,opengl,focus,Winapi,Opengl,Focus,我正在构建一个WIN32应用程序作为一个菜单来运行不同的.exe文件,在这里我使用了所有常用的建议来尝试聚焦窗口(SetFocus(hWnd)SetActiveWindow(hWnd)),但没有任何效果 有什么建议吗?您需要的实际上是SetForegroundWindow(…),因为除了设置活动窗口外,这还将使您的应用程序进入前台 SetActiveWindow(hWnd)仅在应用程序位于前台时才能实现您想要的功能,如果您有一个多文档应用程序并希望在窗口之间切换,则此功能非常有用 以下是初始化/

我正在构建一个WIN32应用程序作为一个菜单来运行不同的.exe文件,在这里我使用了所有常用的建议来尝试聚焦窗口(SetFocus(hWnd)SetActiveWindow(hWnd)),但没有任何效果


有什么建议吗?

您需要的实际上是
SetForegroundWindow(…)
,因为除了设置活动窗口外,这还将使您的应用程序进入前台

SetActiveWindow(hWnd)
仅在应用程序位于前台时才能实现您想要的功能,如果您有一个多文档应用程序并希望在窗口之间切换,则此功能非常有用

以下是初始化/调整rendercontext大小时在Win32窗口管理系统中使用的相关代码选择:

ShowWindow          (hWndRender, SW_SHOW);
SetForegroundWindow (hWndRender);
SetFocus            (hWndRender);