MFC中实现点击菜单的选项弹出一个对话框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中实现点击菜单的选项弹出一个对话框相关的知识,希望对你有一定的参考价值。

参考技术A 1.先画好对话框(这步应该会吧)
2.为对话框建立类:在对话框空白处右击,点建立类向导,选择“建立新类”
3.给菜单选项添加函数:鼠标在菜单项上右击,点建立类向导,这时在左栏里选菜单项ID,右栏选COMMAND,点右边按钮“ADD
FUNCTION”,再点“EDIT
CODE”在函数里写(假设对话框类为Info_Dialog):
Info_Dialog
infodlg;
infodlg.DoModal();
这样就可以实现弹出对话框了

MFC对话框中如何响应弹出式菜单事件 点击按钮 弹出菜单 菜单消息事件响应不了

MFC对话框中如何响应弹出式菜单事件

点击按钮 弹出菜单 菜单消息事件响应不了

手动在对话框类添加消息响应
afx_msg void OnAddfile();
ON_COMMAND(IDM_ADDFILE, OnAddfile)
void CMusicPlayerDlg::OnAddfile()

// TODO: Add your command handler code here
int i;
i=0;
AfxMessageBox("fss");


点击菜单没反应

在资源视图中添加菜单资源(设id 为IDR_MENU_MANAGE),建立你的弹出菜单并为其添加事件响应程序。
然后在需要弹出菜单的地方

CMenu menu,*pMenu;
menu.LoadMenu(IDR_MENU_MANAGE);
pMenu = menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);

其中,pt是要弹出菜单的左上角坐标点追问

菜单能弹出来
CMenu addMenu;
CRect mRect;
GetDlgItem(IDC_BT_ADD)->GetWindowRect(&mRect);
addMenu.LoadMenu(IDR_MENU);
CMenu* subMenu=addMenu.GetSubMenu(0);
subMenu->TrackPopupMenu(TPM_RIGHTALIGN,(mRect.left+mRect.right)/2,mRect.bottom,GetDlgItem(IDC_BT_ADD));,
但弹出来后,点击菜单没反应

追答

资源视图中找到你的菜单IDR_MENU,打开,为每个菜单项添加事件响应程序。我的回答已经很明确

参考技术A 撒旦 参考技术B AfxMessageBox(_T("XXX!")); 参考技术C 你将IDM_ADDFILE这个ID与菜单上的ID一样吗??追问

追答

你这样试试,先随便在对话框上添加一个按钮,然后添加该按钮消息,消息里面就AfxMessageBox一下,运行看看有没有效果,然后将你那个菜单的ID改成这个按钮的ID,运行 试试菜单有没有效果

以上是关于MFC中实现点击菜单的选项弹出一个对话框的主要内容,如果未能解决你的问题,请参考以下文章

MFC中怎么设置单击菜单弹出对话框?

MFC单击菜单项如何弹出对话框?

基于MFC对话框程序中添加菜单栏 (CMenu)

请教实现android工程中点击菜单弹出一个对话框

用mfc怎么打开excel表格

如何在 Access 2007 的窗体中实现点击按钮打开另一个窗体???