一、点击菜单按钮弹出对话框

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弹出对话框的方法相关推荐

  1. 九种js弹出对话框的方法

    [1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: 复制代码代码如下: <script LANGUAGE="javascript"& ...

  2. html js弹出等待框,九种js弹出对话框的方法总结

    [1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: 因为这是一段javascripts代码,所以它们应该放在之间.是对一些版本低的浏览器起作用,在这些老浏览器 ...

  3. 九种js弹出对话框的实现方法

    原文地址:九种js弹出对话框的实现方法 作者:哼哼哈哈 网络编程中,经常要用到 js弹出对话框 http://www.cnxwlm.com/network-biancheng/baidu_313/来增 ...

  4. php谈对话框,php实现弹出对话框的方法

    php实现弹出对话框的方法 发布时间:2020-07-03 11:47:15 来源:亿速云 阅读:123 作者:Leah 本篇文章为大家展示了php实现弹出对话框的方法,代码简明扼要并且容易理解,绝对 ...

  5. MFC弹出对话框几种方法总结

    目录 一.点击菜单按钮弹出对话框 二.用MessageBox()函数弹框 三.MFC对话框鼠标右键弹出菜单,点击菜单弹出对话框 一.点击菜单按钮弹出对话框 1.在资源视图中(.rc文件夹下)找到men ...

  6. js弹出对话框的方法总结

    1.最基本的js弹出对话框窗口代码 <script LANGUAGE="javascript"> window.open (" 地址 ") < ...

  7. PHP弹出对话框的方法

    php中弹出对话框的方法如下,一般,在提交信息后需要弹出对话框提示,之后可以自动关闭对话框,弹出对话框有下面集中方法,其实都是利用javascript中的alert()方法.提示结束后关闭当前页,同样 ...

  8. MFC 弹出对话框MessageBox

    原来是这样的:AfxMessageBox(message); 就这么简单-- 转载于:https://www.cnblogs.com/youring2/archive/2010/08/25/18077 ...

  9. JS弹出对话框的三种方式

    javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码 ...

最新文章

  1. Android图像处理整理
  2. Eclipse最新版 Neon已发布
  3. 看“意大利文艺复兴艺术展”(1)
  4. 嵌入式linux sd卡读写,嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)...
  5. 表格中内容过多时采用省略号,鼠标移上去显示全部内容
  6. jq中each的中断
  7. 直播策划方案怎么做?
  8. 《现代通信原理学习》(二)随机信号分析
  9. excel易用宝的修复
  10. matlab做nmf矩阵分解,进阶理解非负矩阵分解(NMF)
  11. linux录制声卡声音_Linux ALSA 多声卡操作
  12. 计算机技术与软件考试高级难么,计算机技术与软件专业技术资格考试高级哪个好考...
  13. 测评两款升压稳压芯片
  14. 在注册表里查找classid
  15. Anaconda3安装tensorflow踩坑记录
  16. STM32如何下载官方固件库
  17. 视频教程-Echarts+Asp.Net+Sql Server报表开发视频教程-.NET
  18. CS269I:Incentives in Computer Science 学习笔记 Lecture 17 评分规则和同辈预测(诚实预报和反馈激励)
  19. 全要素网格化综合治理平台
  20. Linux日志文件系统(EXT4、XFS、JFS)及性能分析

热门文章

  1. WIFI机型的wifi使用简单图文教程
  2. 【转】拍拍网2015年mysql最新开发规范
  3. rails rake命令
  4. unity获取设备经纬度(unity使用GPS)详解
  5. 未来元宇宙并不仅仅是基于单独某一项技术的发展
  6. sql server 2014 外围应用配置器去哪了??
  7. 中国智能家居市场发展,主要面临哪些困境
  8. IMX6ULL学习笔记(11)——获取和编译官方SDK
  9. winform之MaskedTextBox(掩码文本控件)
  10. python基础系列之学习Python列表,只需这篇文章就够了