• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ダイアログのボタンが押せない)

ダイアログのボタンが押せない

このQ&Aのポイント
  • WinXP+VC6(SP5)+MFC環境で、アプリケーションクラスのInitInstance関数内でダイアログを表示しています。しかし、表示されたダイアログのボタンがクリックできません。
  • Enterキーなどのキーイベントは問題なく処理されるため、ディスクトップもクリックできません。
  • ダイアログのボタンがクリックできるようにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ダイアログベースのアプリケーションってことですか? それとも MDI/SDIなのでしょうか ・・・ または doc/Viewを使わないMFCとか AppWizardが吐いたコードの InitInstanceのみをご質問のように変更してそのような状態になるのでしょうか 当方のVC6では現象を再現できないのですが ・・・ 現象の再現手順を投稿してみましょう

w0a15455
質問者

補足

おはようございます。情報が不適格で申し訳ありません。 SDIアプリケーションを作っています。 doc/viewも使っています。 それで、AppクラスのInitInstanceにダイアログを追加して現象が発生します。 ただ、OSが、WinXPの場合は発生せず、98seやNT4.0で発生します。 記述が抜けていました。ごめんなさい。 これで、たぶん再現すると思います。 ご教授いただけましたら、お願いいたします。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

ん~ そうですね WinMEでも現象は起きるようです dlgの親ウィンドウって NULLでいいのではないかと思います CXXXdlg dlg; dlg.DoModal(); としてやった場合はボタンも押せますよ … 対処療法ですが

w0a15455
質問者

お礼

dlgの親ウインドウをNULL(デフォルト)にすると、今度は、 親ウインドウがないというエラーが出ました。 ここです。 _AFXWIN_INLINE void CWnd::UpdateWindow() { ASSERT(::IsWindow(m_hWnd)); ::UpdateWindow(m_hWnd); } で、いろいろ調べてみたのですが、モーダルダイアログの親ウインドウは、ディスクトップではいけないようです。 仕様を改めてみようと思います。 ありがとうございました。