Visual C++ 6.0 MFCにて質問があります。
[環境]
Visual C++ 6.0 MFC
[タスクバーのアイコンの処理]
リソースにMenuを作成して、以下のソースを作成いたしました。しかし、タスクバーのアイコンをクリックして、Menuが表示されるはずなのですが、途中でエラーが出てしまいます。CMenu*pMenu;がうまく処理されていないみたいなのですが、ソース的に問題ないように思うのですが....
何か問題があるのでしょうか??
[ソース]
CMenuMyMenu;
CMenu*pMenu;
POINTpt;
// 現在のカーソル位置を取得
::GetCursorPos(&pt);
// フォーカスを当てる
SetFocus();
// メニューのロード
VERIFY(MyMenu.LoadMenu(IDR_MENU1));
// 0番目のメニューを取得
pMenu = MyMenu.GetSubMenu(0);
ASSERT(pMenu != NULL); <-- ここでエラーがでる。
// メニューの表示
if(pMenu->TrackPopupMenu( TPM_LEFTALIGN| TPM_RIGHTBUTTON, pt.x, pt.y , this) == 0){
return FALSE;
}
// メッセージを送る
PostMessage(WM_NULL);
return TRUE;
No.2ベストアンサー
- 回答日時:
リソース->右クリック->挿入->Menu を選択し->新規作成->右クリック->ポップアップに表示にチェック
でMenuは作成しています。
はい、作り方間違ってます(^^;;
これではロードしたメニューそのものがポップアップメニューなので、その中の0番目の項目からさらにポップアップメニューがないとGetSubMenuは失敗します。
ちなみに「ポップアップ表示」、ただ単純に見え方が変わってるだけです。一旦閉じて開きなおせば元に戻ってます。
No.1
- 回答日時:
>// 0番目のメニューを取得
>pMenu = MyMenu.GetSubMenu(0);
0番目のメニューがサブメニューじゃないとかしか考えられないような。
その前のLoadMenuができてるんですし。
この回答への補足
ありがとうございます。
>0番目のメニューがサブメニューじゃないとかしか考えられないような。
リソース->右クリック->挿入->Menu を選択し->新規作成->右クリック->ポップアップに表示にチェック
でMenuは作成しています。
TrackPopupMenuにくるとハンドルされていない例外がでます。
また、pMenu = MyMenu.GetSubMenu(0);の値が0x00000000になってしまうため、おかしいなと。
GetSubMenu(0)の戻り値が帰っていないみたいです。
GetSubMenu(0)の使い方にもんだいがあるのでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- その他(Microsoft Office) Microsoft Edgeの「ニュースと関心事項」についてお聞きします。 3 2023/05/22 12:08
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンの表示の色、フォントを...
-
CRichEditCtrlでペーストする文...
-
confirmダイアログの表示文字に...
-
ダイアログボックスで指定した...
-
【VC++2005】ダイアログサイズ...
-
メッセージボックスのボタン文...
-
モードレスダイアログのキー入...
-
メッセージボックスを大きくす...
-
エディットコントロールの色の...
-
VC++ MFC エラーコード C2248 ...
-
ダイアログの上のテキストボッ...
-
'int' から 'LPCSTR' に変換で...
-
コンボボックスのドロップダウ...
-
VC(Ver6.0)でダイアログサイズ...
-
ダイアログの表示位置の保存
-
MFC ポップアップメニューのチ...
-
ダイアログ間のメッセージの送...
-
C# ボタンコントロール内で文字...
-
ポップアップメニュー
-
Facebook「いいね」ボタンのサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを大きくす...
-
ボタンの表示の色、フォントを...
-
コンボボックスのドロップダウ...
-
フォーム上のリストボックスに...
-
ダイアログボックスで指定した...
-
C# ボタンコントロール内で文字...
-
ダイアログの上のテキストボッ...
-
confirmダイアログの表示文字に...
-
'int' から 'LPCSTR' に変換で...
-
MFCダイアログボックスを最前面...
-
メッセージボックスのボタン文...
-
vbscriptで、ファイル選択ダイ...
-
ボタンの配置を変更したい
-
ダイアログにプレビュー表示
-
リソースファイルとは・・・
-
エクセル VBA 「Sub Auto_Open(...
-
ダイアログの表示位置の保存
-
VC(Ver6.0)でダイアログサイズ...
-
ダイアログの一部を半透明化す...
-
MFC ポップアップメニューのチ...
おすすめ情報