0

OpenGL ライブラリを使用して Visual C++ からコンパイルされた 3 つの実行可能ファイルがあります。ウィンドウの作成方法に違いはありませんが、そのうちの 1 つは実行時に自動的にフォーカスされ、他の 2 つはユーザーがフォーカスを得る前にウィンドウをクリックする必要があります。

さまざまな.exeファイルを実行するメニューとしてWIN32アプリケーションを構築しています。ここでは、通常の提案をすべて使用してウィンドウにフォーカスを合わせようとしています(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 に答える