解決方法為:
使對話方塊響應wm_initmenupopup訊息,然後在訊息響應中加入以下**(以下**為mfc的frame響應選單更新的源**)
assert(ppopupmenu != null);
// check the enabled state of various menu items.
ccmdui state;
state.m_pmenu = ppopupmenu;
assert(state.m_pother == null);
assert(state.m_pparentmenu == null);
// determine if menu is popup in top-level menu and set m_pother to
// it if so (m_pparentmenu == null indicates that it is secondary popup).
hmenu
hparentmenu;
if(afxgetthreadstate()->m_htrackingmenu == ppopupmenu->m_hmenu)
state.m_pparentmenu = ppopupmenu;
// parent == child for tracking popup.
else
if((hparentmenu = ::getmenu(m_hwnd)) != null)}}
}state.m_nindexmax = ppopupmenu->getmenuitemcount();
for(state.m_nindex = 0; state.m_nindex < state.m_nindexmax;
state.m_nindex++)
state.doupdate(
this
, true);
// popups are never auto disabled.
}else
// adjust for menu deletions and additions.
uint
ncount = ppopupmenu->getmenuitemcount();
if(ncount < state.m_nindexmax)
}state.m_nindexmax = ncount;
}
新增完成之後,就可以使對話方塊正常響應選單更新訊息了。
若要更詳細的說明,請參閱msdn的
對話方塊與選單的使用
1.alertdialog 對話方塊 private void showmydialog alertdialog.builder ab new alertdialog.builder this ab.settitle dialog ab.setmessage i m dialog ab.setpos...
MFC為簡單對話方塊程式新增選單並加上響應事件
1.在資源視窗插入選單,編輯選單。選單名稱後面加 字母 就是快捷鍵 2.在對話方塊右鍵 屬性 常規 菜單選框中選擇上面建立的選單。執行可以見到,對話方塊已建立起了選單,下面開始新增響應事件 選單每一項都有乙個id,可以在選單視窗檢視。1.在對話方塊的cpp檔案裡的響應事件列表中begin messa...
MFC為簡單對話方塊程式新增選單並加上響應事件
1.在資源視窗插入選單,編輯選單。選單名稱後面加 字母 就是快捷鍵 2.在對話方塊右鍵 屬性 常規 菜單選框中選擇上面建立的選單。執行可以見到,對話方塊已建立起了選單,下面開始新增響應事件 選單每一項都有乙個id,可以在選單視窗檢視。1.在對話方塊的cpp檔案裡的響應事件列表中begin messa...