MFC实现菜单弹出对话框,并在对话框中实现控件触发
2018-04-06 19:14
281 查看
首先我们要新建一个mfc工程,实验工具是vs,选择图中选项
![](https://img-blog.csdn.net/20180406173231681?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
然后下一步当中,设置成基于对话框
![](https://img-blog.csdn.net/20180406173327761?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
然后可以完成,也可以继续下一步设置窗口的一下小部件。
1.第一步,我们要在窗口上添加菜单。找到资源视图,右键添加资源。
![](https://img-blog.csdn.net/20180406183837352?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
选择menu,新建
![](https://img-blog.csdn.net/20180406183917410?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
之后,输入自己想要的菜单名
![](https://img-blog.csdn.net/20180406184037717?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
最后在
![](https://img-blog.csdn.net/20180406184510120?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
添加图中所缺代码:
CMenu menu;
menu.LoadMenu(IDR_MENU1); //IDR_MENU1为菜单栏ID号
SetMenu(&menu);
![](https://img-blog.csdn.net/2018040618445183?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
至此完成了,菜单功能
![](https://img-blog.csdn.net/20180406184726278?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2.第二步,我们新建一个dialog,注意这里要找到资源视图--dialog文件夹--右键--插入dialog(E)
![](https://img-blog.csdn.net/20180406185311763?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
然后,右键--添加类(C),自己取个名字。注意,这个类,接下来要用到。
![](https://img-blog.csdn.net/20180406185424856?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
3.第三步,我们就要在原有菜单基础上,通过菜单触发打开新的对话框
首先,在刚刚编辑菜单的界面,右键下拉菜单中的一个,添加事件处理程序
![](https://img-blog.csdn.net/20180406184928957?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
接着添加编辑
![](https://img-blog.csdn.net/20180406185026443?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
进入编辑区,首先,在头文件区域,加上刚刚所建的类,这里我取的名字是ai,所以我添加的是
#include“ai.h”
在编辑区加上
![](https://img-blog.csdn.net/20180406190028358?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
到此,完成了菜单触发对话框:
![](https://img-blog.csdn.net/20180406190136115?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180406190149154?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
4.最后,就是要求的控件触发的任务了,这里给大家演示显示图片和文字吧。
显示图片,我们在刚刚新建的dialog中加入button控件,双击进入或者右键添加事件处理程序,添加图中代码,
代码:
CImage image1;
image1.Load(_T("d:\\iverson.png"));
CDC* pDC = GetWindowDC();
image1.Draw(pDC->m_hDC, 60, 80);
ReleaseDC(pDC);
![](https://img-blog.csdn.net/20180406190607926?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
然后运行测试,点击button1,就实现控件触发了。
![](https://img-blog.csdn.net/20180406190543926?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
接着是显示文字
我们在刚刚的dialog上添加editcontrol,和button2 然后右键editcontrol添加变量(C)
![](https://img-blog.csdn.net/20180406190844787?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
之后的界面,在变量名那里取个名字,这里取名AI
![](https://img-blog.csdn.net/20180406191025618?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
之后,双击button2或者右键添加事件处理程序,添加图中代码
代码:
AI.SetWindowTextW(_T("阿伦艾弗森"));
![](https://img-blog.csdn.net/20180406191223303?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlbGljaXR5UFk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
至此完成任务,运行程序,测试;
然后下一步当中,设置成基于对话框
然后可以完成,也可以继续下一步设置窗口的一下小部件。
1.第一步,我们要在窗口上添加菜单。找到资源视图,右键添加资源。
选择menu,新建
之后,输入自己想要的菜单名
最后在
添加图中所缺代码:
CMenu menu;
menu.LoadMenu(IDR_MENU1); //IDR_MENU1为菜单栏ID号
SetMenu(&menu);
至此完成了,菜单功能
2.第二步,我们新建一个dialog,注意这里要找到资源视图--dialog文件夹--右键--插入dialog(E)
然后,右键--添加类(C),自己取个名字。注意,这个类,接下来要用到。
3.第三步,我们就要在原有菜单基础上,通过菜单触发打开新的对话框
首先,在刚刚编辑菜单的界面,右键下拉菜单中的一个,添加事件处理程序
接着添加编辑
进入编辑区,首先,在头文件区域,加上刚刚所建的类,这里我取的名字是ai,所以我添加的是
#include“ai.h”
在编辑区加上
到此,完成了菜单触发对话框:
4.最后,就是要求的控件触发的任务了,这里给大家演示显示图片和文字吧。
显示图片,我们在刚刚新建的dialog中加入button控件,双击进入或者右键添加事件处理程序,添加图中代码,
代码:
CImage image1;
image1.Load(_T("d:\\iverson.png"));
CDC* pDC = GetWindowDC();
image1.Draw(pDC->m_hDC, 60, 80);
ReleaseDC(pDC);
然后运行测试,点击button1,就实现控件触发了。
接着是显示文字
我们在刚刚的dialog上添加editcontrol,和button2 然后右键editcontrol添加变量(C)
之后的界面,在变量名那里取个名字,这里取名AI
之后,双击button2或者右键添加事件处理程序,添加图中代码
代码:
AI.SetWindowTextW(_T("阿伦艾弗森"));
至此完成任务,运行程序,测试;
相关文章推荐
- 用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果
- MFC基于对话框——右键弹出菜单,并响应函数
- MFC中弹出对话框,父窗口消失不见的实现
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- MFC基于对话框上插入MENU菜单栏并点击菜单弹出新窗口
- MFC中提示对话框的滑动弹出和程序图标加入系统托盘的实现
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转)
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- MFC基于对话框的程序添加菜单&点击菜单弹出一个新的对话框
- MFC 双击picture控件后弹出另外一个对话框,显示大图的策略
- 基于对话框的MFC应用程序实现菜单的勾选功能
- MFC对话框中按TAB键 实现在指定控件中跳转
- MFC之右键点击listctrl控件弹出菜单
- MFC TreeCtrl树形控件中限定右键点击节点弹出菜单
- MFC CListBox实现右键单击弹出菜单
- MFC实现背景透明,控件不透明的对话框,且点击图片有事件响应
- MFC实现对话框最大化时控件的集体跟踪
- 不用splitter控件 简单实现对mfc对话框的分割的方法
- 两种方法实现MFC 对话框最大化时控件也随比例最大化或者还原