VS2013 MFC基于对话框编程(创建工程)
一、新建MFC项目
- 选择:基于对话框
- MFC的使用:
在共享DLL中使用MFC (程序运行需要dll)
在静态库中使用MFC (程序较大,运行时不需要dll)
- 设置MFC程序主框架样式和标题
高级功能
若是用不上“ActiveX控件”可以去掉勾选,若要涉及到网络编程就把“windows嵌套字”选上
完成
二、MFC程序执行流程
- 每创建一个MFC项目,默认包含3个类,“关于”对话框、主对话框类、初始化项目的App类。
- 项目生成后,都会有一个属于App类的theApp对象,对本应用程序实例化。
// CMFCTest1App 构造CMFCTest1App::CMFCTest1App()
{// 支持重新启动管理器m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;// TODO: 在此处添加构造代码,// 将所有重要的初始化放置在 InitInstance 中
}// 唯一的一个 CMFCTest1App 对象CMFCTest1App theApp;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 应用程序创建完成,程序开始运行,进入消息循环,windows程序的事件都是消息驱动的,每产生一个消息就触发一个响应事件,消息和事件通过声明消息映射
DECLARE_MESSAGE_MAP()
联系在一起。
默认包含三个消息:
BEGIN_MESSAGE_MAP(CMFCTest1Dlg, CDialogEx)ON_WM_SYSCOMMAND() //响应控制指令ON_WM_PAINT() //响应绘图消息,用于刷新窗口ON_WM_QUERYDRAGICON() //当用户拖动最小化窗口时取得光标
END_MESSAGE_MAP()
- 1
- 2
- 3
- 4
- 5
- 当应用程序关闭时,会发送WM_CLOSE消息,程序相应后结束。在类向导中可以添加消息处理函数。
void CMFCTest1Dlg::OnClose()
{// TODO: 在此添加消息处理程序代码和/或调用默认值if (MessageBox(_T("确定退出吗"),_T("提示"),MB_YESNO|MB_ICONWARNING)==IDNO){return;}CDialogEx::OnClose();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
5.应用程序通过定义,初始化,由winmain开始,注册、创建、显示窗口,消息响应,程序终止,结束运行周期
三、对话框类
- afx_msg宏
afx_msg宏没有任何语法上的实际意义。afx_msg宏表示声明的是一个消息响应函数。 - DoDataExchange函数
用于存放各类控件的变量信息 - OnInitDialog函数
用于初始化对话框 - OnSysCommand系统指令响应函数,默认处理窗口最小化和最大化指令等
- OnPaint绘图消息响应函数
调出类向导
项目->类向导,快捷键Ctrl+shilft+X四、添加按钮
将默认对话框中的静态文本和原有按钮删除,添加新的按钮1和按钮2,在属性页中可以查看并设置。一般只需要修改两个属性,“Caption”和“ID”,前者是按钮的文本,后者是其唯一标识。
为按钮添加事件处理函数
实现按钮的功能
添加按钮的控件型变量,变量命名一般以“m_”开头,后面部分为按钮功能简要说明。
- 在初始化函数OnInitDialog中修改Exit对话框不可用
// TODO: 在此添加额外的初始化代码m_Exit.EnableWindow(FALSE);
- 1
- 2
- 添加处理事件
void CMFCTest1Dlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码CString str;m_Enable.GetWindowTextW(str);if (str=="使能"){m_Exit.EnableWindow(TRUE);m_Enable.SetWindowTextW(_T("使不能"));}else{m_Exit.EnableWindow(FALSE);m_Enable.SetWindowTextW(_T("使能"));}
}void CMFCTest1Dlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码SendMessage(WM_CLOSE, 0, 0);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 6.
VS2013 MFC基于对话框编程(创建工程)相关推荐
- C++小知识——VS2013 MFC基于对话框编程
转载自:https://blog.csdn.net/wokaowokaowokao12345/article/details/53173966 前言 一直利用Qt库做Ui设计,但针对于一些MFC项目, ...
- MFC基于对话框添加图片控件
建立MFC基于对话框工程,命名为AutoRecFunct. 第一种方法:拖动一个图片控件修改其ID为IDC_STATIC_PICTURE. 右击为其添加变量m_picture. 不知为何不能在初始化的 ...
- C++MFC基于对话框的编程——模态(非模态)对话框
目录 一.添加MFC功能 二.创建基于MFC的应用程序框架 三.初识界面 四.上案例 1.拖控件button(两个) 2.改控件名字 2.1改名方法1 2.2改名方法2 3.添加两个新的对话框(Dia ...
- MFC基于对话框上插入MENU菜单栏并点击菜单弹出新窗口
一.创建基于对话框的应用程序框架 1.选择菜单项文件->新建->项目,弹出"新建项目"对话框. 2.直接选择"MFC应用程序"或左侧面板中模板的Vi ...
- 【MFC】对话框中创建工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 使用MFC向导可以创建 ...
- 棋类对战小游戏(VS2012 MFC基于对话框)
1需求分析 二打一棋用户需要的功能如下: (1)移动棋子:玩家通过鼠标点击能够实现棋子的移动,同时保证每次只能移动一格,且只能移动到未被占领的格子上. (2)吃掉棋子:同一条线上的己方两个棋子可以吃掉 ...
- 【mfc】vs2019创建MFC基于对话框的项目没有插入任何代码运行报错:0xC0000005:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
发现问题: 里面一堆乱七八槽的啥几把玩意儿? 修改项目名称为英文.欧了~ 总结:项目名称别用中文!!!虽然我也不知道为啥不能用
- MFC基于对话框的商场交易软件实现
void CHomeViewDlg::OnClickedBtGuke() {// TODO: 在此添加控件通知处理程序代码CUserLoginDlg dlg;//注册窗框口类对象User user;u ...
- MFC基于对话框如何添加位图并使位图背景透明(TransparentBlt函数)
MFC中比较重要的一部分学习内容即是绘图,而绘图时我们会发现如果想插入一张图片而又不想要图片的背景,或者已经把图片的背景用Ps去掉了,但是在MFC窗口中显示图片的时候又有了白色的背景,这个时候就可以使 ...
最新文章
- jumpserver 堡垒机环境搭建(图文详解)
- 有哪些足不出户,能用十天掌握的新技能?
- 理请求时出现未知错误.服务器返回的状态码为: 500,react-native
- linux下spark的python编辑_Linux下搭建Spark 的 Python 编程环境的方法
- 后来,我学会了每做完一件事
- 应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的(转载)...
- 牛客练习赛29: F. 算式子
- 三相短路电流计算机算法的原理什么,第三章电力系统三相短路电流及实用计算.ppt...
- 金融银行软件测试超大型攻略,最受欢迎的金融银行大揭秘附面试题
- 【Python】具有异常处理功能的计算BMI值的python程序
- [dfs树]「CEOI 2017」One-Way Streets
- 麦克斯韦方程组在电力传动领域的应用(1)
- 《股票魔法师》第6-7章读书分享
- 【信息汇总】重庆理工大学计算机考研
- 职场——领导的话你得品,你不走心,就容易走人
- 类似qq空间的点赞和取消赞
- mini2440 网络视频传输试验
- 【小毛驴的絮叨】2020年半年总结
- CH450/TM1637 驱动调试
- 深圳交易所新股申购规则
热门文章
- matlab 求复数的模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...
- python和sqlserver应用_Windows和Linux下使用Python访问SqlServer的方法介绍
- 从底部上滑失灵_宝鸡终于也有超火的高空玻璃水滑啦!就在玉池公社!8月10日见~...
- jq中查找上级_必备实用技能:在EXCEL中制作下拉菜单
- 西安理工大学 计算机考研不分专硕学硕吗,2021年西安理工大学计算机科学与工程学院考研专业目录_研究生考试范围 - 学途吧...
- python模拟键盘输入视频_python教程-模拟鼠标和键盘输入
- verilog实现伺服电机控制
- c语言图片raw保存,求指导,如何用c语言实现读取*.raw格式图像
- 操作系统原理_读懂操作系统之缓存原理(cache)(三)
- 《算法导论》学习总结 — 21.第16章 贪心算法(1) 基础入门1