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");
点击菜单没反应
然后在需要弹出菜单的地方
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中实现点击菜单的选项弹出一个对话框的主要内容,如果未能解决你的问题,请参考以下文章