孫鑫vc++6.0教程第六課1小時32分左右有個建立右鍵菜單的教程,照教程錄入後會報錯,如下
0x10164A91 (mfc120ud.dll) (Menu.exe 中)處的第一機會異常: 0xC0000005: 讀取位置 0x00000004 時發生通路沖突。
0x10164A91 (mfc120ud.dll) (Menu.exe 中)處有未經處理的異常: 0xC0000005: 讀取位置 0x00000004 時發生通路沖突。
百度了一下之後,沒找到解決方法,自己猜測試了一下,原來是子菜單沒有。
原來的代碼:
menu.LoadMenu(IDR_MENU1);
CMenu *pPopup;
pPopup=menu.GetSubMenu(0);
ClientToScreen(&point);
pPopup->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
這樣會報錯
然後改了一下代碼:
menu.LoadMenu(IDR_MAINFRAME);
CMenu *pPopup;
pPopup=menu.GetSubMenu(0);
ClientToScreen(&point);
pPopup->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);

發現是自己建立的菜單中沒有子項
是以添加子項就可以了
注意彈出菜單的 屬性設定:頂層菜單是沒有ID的(COMMAND),隻有索引(POSITION)
這樣就可以了
花了一個多小時,就搞定這麼小的知識點。
分享給後來者吧