
環境:WinXP+VC6(SP5)+MFC
アプリケーションクラスで、ダイアログを次のように表示しています。
BOOL CXXXXApp::InitInstance()
{
・・・・
CXXXXDlgdlg(AfxGetMainWnd()->GetDesktopWindow());
dlg.DoModal();
・・・・
}
で、ダイアログは表示されるのですが、クリックできません。
(ディスクトップもクリックできません。)
Enterなどキーイベントは問題なく処理されます。
どうすれば、クリックできるようになるでしょうか?
おかしな質問で申し訳ありませんが、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ダイアログベースのアプリケーションってことですか?
それとも MDI/SDIなのでしょうか ・・・ または doc/Viewを使わないMFCとか
AppWizardが吐いたコードの InitInstanceのみをご質問のように変更してそのような状態になるのでしょうか
当方のVC6では現象を再現できないのですが ・・・
現象の再現手順を投稿してみましょう
この回答への補足
おはようございます。情報が不適格で申し訳ありません。
SDIアプリケーションを作っています。
doc/viewも使っています。
それで、AppクラスのInitInstanceにダイアログを追加して現象が発生します。
ただ、OSが、WinXPの場合は発生せず、98seやNT4.0で発生します。
記述が抜けていました。ごめんなさい。
これで、たぶん再現すると思います。
ご教授いただけましたら、お願いいたします。
No.2
- 回答日時:
ん~ そうですね WinMEでも現象は起きるようです
dlgの親ウィンドウって NULLでいいのではないかと思います
CXXXdlg dlg;
dlg.DoModal();
としてやった場合はボタンも押せますよ … 対処療法ですが
dlgの親ウインドウをNULL(デフォルト)にすると、今度は、
親ウインドウがないというエラーが出ました。
ここです。
_AFXWIN_INLINE void CWnd::UpdateWindow()
{ ASSERT(::IsWindow(m_hWnd)); ::UpdateWindow(m_hWnd); }
で、いろいろ調べてみたのですが、モーダルダイアログの親ウインドウは、ディスクトップではいけないようです。
仕様を改めてみようと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エディットボックスの処理で画...
-
ホームページビルダー21で作成...
-
ボタンの表示の色、フォントを...
-
エディットコントロールの色の...
-
C# ボタンコントロール内で文字...
-
ダイアログ最前面表示時の後ろ...
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
マインクラフト(pc版)で座標...
-
コントロールの書式設定で、“コ...
-
Minecraft 統合版(PC)の描画距...
-
スピンボタンを右クリックして...
-
ゲームでは結局どっちが良いの?
-
ワード上Shapeの位置情報を統一...
-
皆さん、おはようございます♪ ...
-
Word 図形の位置
-
文字色 エクリプス
-
エクセル - リストボックスのマ...
-
ダイアログ内コントロールの位...
-
3次元空間上の2つの座標から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを大きくす...
-
フォーム上のリストボックスに...
-
ボタンの表示の色、フォントを...
-
ダイアログの上のテキストボッ...
-
リソースファイルとは・・・
-
'int' から 'LPCSTR' に変換で...
-
コンボボックスのドロップダウ...
-
ボタンの配置を変更したい
-
ダイアログボックスで指定した...
-
C# ボタンコントロール内で文字...
-
メッセージボックスのボタン文...
-
ダイアログの一部を半透明化す...
-
vbscriptで、ファイル選択ダイ...
-
【MFC】sleep関数を用いたモー...
-
【VC++2005】ダイアログサイズ...
-
Visual C++のダイアログ編集画...
-
MFCのリストボックスについて
-
エディットボックスの処理で画...
-
ダイアログを自分の好きな位置...
-
MFCダイアログボックスを最前面...
おすすめ情報