掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ダイアログを開こうとするとフリーズ (ID:69270)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VC.NETでウィンドウプログラムを作成しています。 ウィンドウプロシージャで入力キーや、マウス、メニューの検出を行っているのですが、 <メニュー>→<オプション>でダイアログを開こうとするとメインウィンドウがフリーズします。 <メニュー>→<閉じる>をすると終了確認のメッセージボックスを表示するっていう至極単純なプログラムさえフリーズしてしまいます。 /************************************************************/ /* メインウィンドウプロシージャ */ /************************************************************/ LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wp, LPARAM lp) { switch(msg) { case WM_CREATE: AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0); /* MFCを有効にするための処理 */ g_MainWnd = hWnd; /* グローバルなハンドル */ break; case WM_DESTROY: PostQuitMessage(0); break; case WM_COMMAND: OnMenu(hWnd,wp); break; /* 〃 メニュー選択 */ default: return (DefWindowProc(hWnd, msg, wp, lp)); /* 無い命令はここで処理をする */ } return 0; } /************************************************************/ /* メニュー処理関数 */ /************************************************************/ void OnMenu(HWND hWnd, WPARAM wp) { switch(LOWORD(wp)) { case IDM_SEL_FILE: /* ファイル選択ダイアログ *********************/ DialogBox(g_hInst,"AUTOPLAY", g_MainWnd, (DLGPROC)SelFileDlgProc); //←ここでフリーズします break; case IDM_CLOSE: /* 終了 *********************/ id = MessageBox(hWnd, //ここでもフリーズします "終了してもよろしいですか?", "確認", MB_YESNO | MB_ICONQUESTION); if(id == IDYES){ /* OK? */ DestroyWindow(g_MainWnd); /* 終了 */ } break; } } モーダルで開こうとすると WM_CANCELMODE というメッセージが送られる事までは分かりました。 初心者と言って差し支えない程度の私なので、 もしかしたら単純な箇所でありえない間違いを犯しているかもしれませんが、 どうか暖かい目でご指導よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.