永发信息网

MFC 单击菜单弹出对话框

答案:3  悬赏:20  手机版
解决时间 2021-03-21 13:52
MFC 单击菜单弹出对话框
最佳答案
方法有很多
先说个最简单的
1. 在工程的资源里面加1个菜单和3个对话框(假设ID是IDR_MENU1, IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3);
2. 在菜单添加要的选项, 对话框里面拖你要的控件
3. 在主对话框的OnInit函数里写以下代码
CMenu* menu = new CMenu;
menu->LoadMenu(MAKEINTRESOURCE(IDR_MENU1));
this->SetMenu(menu);
到现在我们已经把菜单加到主对话框里了, 节下来是响应菜单项
4. 对menu的某一项右键, 添加一个COMMEND MESSAGE, 系统会自动生成一个函数, 在函数里面写以下代码
// TODO: Add your command handler code here
CDialog* dlg = new CDialog;
dlg->Create(MAKEINTRESOURCE(IDD_DIALOG1));
dlg->ShowWindow(1);
5. 其他两项也一样的做法
全部回答

OnInitDialog函数。
在对话框编辑页面上,按ctrl+w调出资源管理器。如附图。
//右键列表
void OnNMRclickUserList(NMHDR * pNMHDR, LRESULT * pResult)
{
NMITEMACTIVATE * pListNotify=(NMITEMACTIVATE *)pNMHDR;
if (pListNotify->iItem!=-1)
{
//获取位置
CPoint MousePoint;
GetCursorPos(&MousePoint);
//构造菜单
CMenu CtrlMenu;
CtrlMenu.CreatePopupMenu();
//功能菜单
CtrlMenu.AppendMenu(MF_ENABLED,IDM_MENU_NULL,TEXT("菜单项名字"));
CtrlMenu.AppendMenu(MF_SEPARATOR);
//显示菜单
CtrlMenu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,MousePoint.x,MousePoint.y,this);
}
return;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
寒假做的好事作文两百五十字
嫦娥一号卫星从发射到顺利进入地月转移轨道,
萌新虚心求教九州风神公爵机箱及风扇接线问题
昧昧吾思之什么意思
商标注册.我是选38类呢还是42类
柏叶露 具体指什么?
王源不喜欢吃什么,王源喜欢什么东西
一吨锅炉一小时大约燃烧多少煤?型煤和散煤的
为什么我就很少做梦,应该是几乎不做.偶尔做过
外国品牌女包有那些
对下列各句中的主语谓语宾语解说不
电脑买的外置声卡也调试了。可以用,可视频,
如果你的老公背叛了你,你会怎么做?
生熟普洱哪个减肥效果好
ThinkPad W530怎么样,优点,缺点,点评
推荐资讯
自我解嘲的意思是什么,"解嘲"是什么意思?
科鲁兹经过电脑提升马力可靠吗
我的右胳膊比左胳膊粗,但是左胳膊却比右胳膊
她家里所有人都反对她跟我,小舅妈,小舅,大
融融商务大厦这个地址在什么地方,我要处理点
如图所示,是占鑫同学爸爸设计的景德镇名瓷--
若函数f(x)=x2+ax是偶函数,则实数a=______
自贡到绵阳三台县怎么坐车最方便省钱啊?
六年级语文书里有美丽的风景......三个,有深
点点利家纺怎么去啊,有知道地址的么
我家狗被人偷了怎么办?
做石壶的名家有哪些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?