私はコントロール、いくつかのCButtonsとCScrollbarを含むモードレスCDialogを持っています。 CDialogは、常にフォーカスを維持したいエディットボックスの親である。問題は、ユーザーがコントロールを使用してボタンまたはスクロールバーをクリックするたびに、コントロールがフォーカスを編集ボックスから奪い、親ウィンドウがフォーカスなしで描画され(ヘッダーバーがグレー表示される)、コントロールがすべてのキーボード入力を受け取ります。コントロールがマウス操作に反応するがフォーカスを奪う方法はありますか?フォーカスを盗むことなくダイアログコントロールを使用する
コントロールとダイアログはすべてWS_CHILDで作成されます。コントロールはダイアログボックスの外にあり、ダイアログボックスはエディットボックスの外にあります。
コントロールの使用後にフォーカスを戻してみましたが、親ウィンドウが消えてちらつき、フォーカスを取り戻します。基本的には、スクロールバーをクリックしたりドラッグしたりできるコンボボックスのようなものが必要ですが、キーボード入力はスクロールバーだけでなくダイアログ自体にも残ります。
質問者は、ダイアログボックスの 'hwndParent'が、まだ残っていなければならないエディットコントロールのウィンドウハンドルであることを意味すると思います。 –
はい、私はその質問が親/子ではなく所有者/所有者を意味すると思います。これは、MSDNのマニュアルでさえ、用語の一般的な不明瞭さです。 –