- 締切済み
MFC ボタンのEnableについて
はじめまして。 質問させてください。 VC++ 2005 MFCで開発しております。 DLGにボタンを配置して ボタン押下後自身のEnableをきります。 するとタブがダイアログ自体も含め どこにも当たらずタブキーが効きません。 OnOk, OnCancelで処理させたいのですが 当然メッセージを取得できません。 ダイアログのアクティブを一度切り替えるとなおります。 解決方法としては ボタン押下でEnableをきった後 ダイアログにフォーカスを当てると正常に動きます。 This->SetForcus(); これはMFCの仕様なのでしょうか? ボタン押下後自身のEnableをきることはよく行う動きだと思いますが。 以上になります。 お詳しい方がおられましたらご教授お願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.1
確かに アクティブなアプリケーションにもかかわらずフォーカスを持っているコントロールがなくなるとKeyDownなどのイベントが取れませんね CloseボタンのクリックとALT+F4には反応するようです OnCancelが呼ばれます 対処療法として CDialogの派生クラスにフォーカスを与えるって方法でしょう EnableWindowを使った後で GetFocusがNULLを返すようなら this->SetFocus() といった具合でしょうか http://forums.microsoft.com/msdn-ja/default.aspx で質問してみたら もう少しましな回答が得られるかも