0

我有三个使用 OpenGL 库从 Visual C++ 编译的可执行文件。尽管它们之间的窗口创建方式没有什么不同,但其中一个在我运行它时会自动获得焦点,而另外两个则要求用户在获得焦点之前单击窗口。

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

有什么建议吗?

4

1 回答 1

0

实际上,您想要的是SetForegroundWindow (...),因为除了设置活动窗口之外,这还会将您的应用程序带到前台。

SetActiveWindow (hWnd)如果您的应用程序在前台,只会完成您想要的,如果您有一个多文档应用程序并且想要在窗口之间切换,它会很有用。

这是我在 Win32 窗口管理系统中初始化/调整渲染上下文大小时使用的相关代码选择:

ShowWindow          (hWndRender, SW_SHOW);
SetForegroundWindow (hWndRender);
SetFocus            (hWndRender);
于 2013-07-17T16:54:32.317 回答