對話方塊程式無法響應選單更新的問題

2021-04-23 18:18:58 字數 1252 閱讀 5647

解決方法為:

使對話方塊響應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...