私はいくつかの編集コントロールを持つ CDialog ベースのダイアログ ボックスがある MS Visual C++ プロジェクトを持っています。ユーザーの現在のフォーカスを持つコントロールを強調表示したいと思います。これを実装するには、GetFocus() で現在フォーカスがあるウィンドウへのポインターを取得し、GetDlgCtrlID() でフォーカスされたコントロールの ID を取得します。
CWnd *pWnd=GetFocus();
idfocus=(pWnd->GetDlgCtrlID());
次に、これをメンバー関数 OnCtlColor で HBRUSH が設定されている現在のコントロールと比較します。
これは、PC で実行されている別のアプリケーションのウィンドウをクリックするまで問題なく動作します。Firefoxなど。その時点でアプリケーションがクラッシュします。
特定のダイアログ ボックスで、その特定のダイアログ ボックスのみにフォーカスがあるコントロールがある場合、それを見つける最良の方法は何ですか? または、同じアプリケーションのみに制限することもできます。