
VC++6.0で親ダイアログで作成した子ダイアログをモードレスで表示しています。(ShowWindowで表示した後、子ダイアログが終了するまでループ)
両方のダイアログに、OKボタンとキャンセルボタンしかない時には、リターンキー・ESCキーを押せば子ダイアログが終了していました。(親ダイアログにフォーカスがあるときには親ダイアログが終了)
ところが、子ダイアログが表示されている間、親ダイアログ上でプログレスバーを表示・更新ようにしたら、とたんにリターンキー・ESCキーが効かなくなり、マウスのクリックでしか終了することができなくなりました。
WEBで調べてPreTranslateMessageを追加して、この関数にブレイクポイントを設定しましたが、呼ばれている様子がありません。
子ダイアログをマウスのボタンクリックで終了させた後は、親ダイアログのPreTranslateMessageでイベントが取得できます。
何をどうしたらリターンキー・ESCキーのイベントが取得できるようになるのでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
内容からだけですとなんとも言いがたい感じなのですが、
>(ShowWindowで表示した後、子ダイアログが終了するまでループ)
という辺りが少し気になります。
無限ループ等をしてWindowsに制御を戻していない、ということはないでしょうか。
もし、親ダイアログの中で無限ループ等をしていると、Windowsのメッセージ(この場合はESCキー等)を処理できないような気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンの表示の色、フォントを...
-
ボタンの配置を変更したい
-
'int' から 'LPCSTR' に変換で...
-
vbscriptで、ファイル選択ダイ...
-
MFC ポップアップメニューのチ...
-
エクセル VBA 「Sub Auto_Open(...
-
メッセージボックスのボタン文...
-
ダイアログの表示位置の保存
-
MFCダイアログボックスを最前面...
-
ダイアログ最前面表示時の後ろ...
-
PICTURE型
-
コントロールの色の変更
-
メッセージボックスを大きくす...
-
フォーム上のリストボックスに...
-
CWnd::SetCapture()の動作について
-
ダイアログの非表示が遅い
-
【VC++2005(CLR)】ダイアログ右...
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
コントロールの書式設定で、“コ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを大きくす...
-
フォーム上のリストボックスに...
-
ボタンの表示の色、フォントを...
-
ダイアログの上のテキストボッ...
-
リソースファイルとは・・・
-
ボタンの配置を変更したい
-
コンボボックスのドロップダウ...
-
'int' から 'LPCSTR' に変換で...
-
ダイアログボックスで指定した...
-
C# ボタンコントロール内で文字...
-
メッセージボックスのボタン文...
-
ダイアログの一部を半透明化す...
-
vbscriptで、ファイル選択ダイ...
-
【MFC】sleep関数を用いたモー...
-
【VC++2005】ダイアログサイズ...
-
Visual C++のダイアログ編集画...
-
MFCのリストボックスについて
-
エディットボックスの処理で画...
-
ダイアログを自分の好きな位置...
-
MFCダイアログボックスを最前面...
おすすめ情報