3种MFC弹出对话框的方法
一、点击菜单按钮弹出对话框
1、在资源视图中(.rc文件夹下)找到menu,选择需要弹框的菜单项;
2、点击菜单项,修改菜单ID,在主程序中用ON_COMMAND()将ID和函数关联,要在主程序的头文件中声明被关联函数;
例:
菜单ID和函数关联
ON_COMMAND(ID_Task,&CMFCExampleView::OnCreateTask)
声明函数
afx_msg void OnCreateTask();
3、在资源视图中(.rc文件夹下)添加Dialog,为对话框创建类(CAboutDlg);
4、在2中被关联的函数中写如下代码实现弹框
例:
void CMFCExampleView::OnCreateTask(){CAboutDlg dlg;dlg.DoModal();
}
5、在对话框OnBnClickedOk()中写具体弹框实现内容;
注:注意包含头文件
二、用MessageBox()函数弹框
1、包含头文件
#include<windows.h>
2、例:
int result = essageBox( TEXT("确定新建任务吗?") , TEXT("新建任务") ,MB_YESNO);
switch(result)
{case IDYES:{//点击YES按钮的具体实现功能CMFCExampleDoc* pVitaHypDoc =GetDocument();pVitaHypDoc->getPostDoc()->getMesh()->DeleteAllData();pVitaHypDoc->getPostDoc()->getResult()->clearData();pVitaHypDoc->getTestDoc()->getMesh()->DeleteAllData();pVitaHypDoc->getTestDoc()->getResult()->clearData();pVitaHypDoc->getGroupManager()->removeAll();pVitaHypDoc->m_vectorSensorLoadCaseManager.clear();pVitaHypDoc->FlushAllSegment();pVitaHypDoc->ClearCustomNotes();UpdateCustomNote();pVitaHypDoc->updateTxtNodes(NULL);pVitaHypDoc->updateHoopsModel();UpdateView();((CMainFrame*)AfxGetMainWnd())->m_wndClassView.FillClassView();((CMainFrame*)AfxGetMainWnd())->m_wndFileView.FillFileView();break;}case IDNO:break;
}
注意:MessageBox()函数返回值是整型。
三、MFC对话框鼠标右键弹出菜单,点击菜单弹出对话框
1、MFC对话框上点击鼠标右键,弹出菜单
(1)打开对话框,在对话框上右键选择类向导,选择消息并选择WM_RBUTTONDOWN(双击或选择添加消息处理程序)
则会在该对话框的.cpp文件中自动添加消息处理函数
// CChartDialog 消息处理程序void CChartDialog::OnRButtonDown(UINT nFlags, CPoint point)
{// TODO: 在此添加消息处理程序代码和/或调用默认值CDialogEx::OnRButtonDown(nFlags, point);
}
2)添加右键弹出菜单,并添加响应函数
实现步骤:
a、新建一个菜单资源,IDR_TOOL_MENU
b、代码实现
void CChartDialog::OnRButtonDown(UINT nFlags, CPoint point)
{// TODO: 在此添加消息处理程序代码和/或调用默认值CMenu menu; //定义下面要用到的cmenu对象menu.LoadMenu(IDR_TOOL_MENU); //装载自定义的右键菜单 CMenu *pPopup = menu.GetSubMenu(0); //获取第一个弹出菜单,所以第一个菜单必须有子菜单CPoint point1;//定义一个用于确定光标位置的位置 GetCursorPos(&point1);//获取当前光标的位置,以便使得菜单可以跟随光标 pPopup ->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,GetParent());//在指定位置显示弹出菜单CDialogEx::OnRButtonDown(nFlags, point);
}
(3)在资源视图中右键单击菜单项,选择添加事件处理程序
(4)在资源视图中为菜单中的每一项建立类向导,并添加Command响应函数,然后在这个函数中加入语句。
ON_COMMAND(ID_TOOL_DEL, &CDlgTool::OnToolDel)/
void CDlgTool::OnToolDel()
{AfxMessageBox("成功!");
}
发现问题:
在上述步骤二中,
pPopup ->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,this);
this表示点击菜单的消息传递到本对话框,相应的改变其值也可以传递到其它对象。如GetParent(),传递到父对话框中。
————————————————
版权声明:本文为CSDN博主「Asia-Lee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/asialee_bird/article/details/79525562
3种MFC弹出对话框的方法相关推荐
- 九种js弹出对话框的方法
[1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: 复制代码代码如下: <script LANGUAGE="javascript"& ...
- html js弹出等待框,九种js弹出对话框的方法总结
[1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: 因为这是一段javascripts代码,所以它们应该放在之间.是对一些版本低的浏览器起作用,在这些老浏览器 ...
- 九种js弹出对话框的实现方法
原文地址:九种js弹出对话框的实现方法 作者:哼哼哈哈 网络编程中,经常要用到 js弹出对话框 http://www.cnxwlm.com/network-biancheng/baidu_313/来增 ...
- php谈对话框,php实现弹出对话框的方法
php实现弹出对话框的方法 发布时间:2020-07-03 11:47:15 来源:亿速云 阅读:123 作者:Leah 本篇文章为大家展示了php实现弹出对话框的方法,代码简明扼要并且容易理解,绝对 ...
- MFC弹出对话框几种方法总结
目录 一.点击菜单按钮弹出对话框 二.用MessageBox()函数弹框 三.MFC对话框鼠标右键弹出菜单,点击菜单弹出对话框 一.点击菜单按钮弹出对话框 1.在资源视图中(.rc文件夹下)找到men ...
- js弹出对话框的方法总结
1.最基本的js弹出对话框窗口代码 <script LANGUAGE="javascript"> window.open (" 地址 ") < ...
- PHP弹出对话框的方法
php中弹出对话框的方法如下,一般,在提交信息后需要弹出对话框提示,之后可以自动关闭对话框,弹出对话框有下面集中方法,其实都是利用javascript中的alert()方法.提示结束后关闭当前页,同样 ...
- MFC 弹出对话框MessageBox
原来是这样的:AfxMessageBox(message); 就这么简单-- 转载于:https://www.cnblogs.com/youring2/archive/2010/08/25/18077 ...
- JS弹出对话框的三种方式
javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码 ...
最新文章
- Android图像处理整理
- Eclipse最新版 Neon已发布
- 看“意大利文艺复兴艺术展”(1)
- 嵌入式linux sd卡读写,嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)...
- 表格中内容过多时采用省略号,鼠标移上去显示全部内容
- jq中each的中断
- 直播策划方案怎么做?
- 《现代通信原理学习》(二)随机信号分析
- excel易用宝的修复
- matlab做nmf矩阵分解,进阶理解非负矩阵分解(NMF)
- linux录制声卡声音_Linux ALSA 多声卡操作
- 计算机技术与软件考试高级难么,计算机技术与软件专业技术资格考试高级哪个好考...
- 测评两款升压稳压芯片
- 在注册表里查找classid
- Anaconda3安装tensorflow踩坑记录
- STM32如何下载官方固件库
- 视频教程-Echarts+Asp.Net+Sql Server报表开发视频教程-.NET
- CS269I:Incentives in Computer Science 学习笔记 Lecture 17 评分规则和同辈预测(诚实预报和反馈激励)
- 全要素网格化综合治理平台
- Linux日志文件系统(EXT4、XFS、JFS)及性能分析