CWindThread
をCWinApp::InitInstance()
に作成します。そのスレッドでは、ダイアログを作成します(そのダイアログにプログレスバーを表示するため)。他のスレッドからダイアログを閉じるとメインウィンドウからフォーカスできない
InitInstance()
が終了した後、ダイアログボックスからDestroyWindow()
を呼び出してダイアログを閉じますが、アプリケーションがメインウィンドウからフォーカスを失っています。
メインウィンドウのフォーカスを設定するのにAfxGetMainWnd()->SetActiveWindow();
を使用しましたが、動作しません。
ダイアログを閉じた後、メインウィンドウにフォーカスを戻すにはどうすればよいですか?
SetFocus() - 関数を試しましたか? https://msdn.microsoft.com/en-us/library/ms646312(VS.85).aspx –
'pMainFrame-> SetFocus()'を使用しましたが動作しません – KidNg
あなたの実装は後方にあります:ワーカースレッドに通知し、そこからGUIスレッドに通知します。クロススレッドウィンドウの階層は、維持するのが非常に困難です。 – IInspectable