一、新建MFC项目

  1. 选择:基于对话框
  2. MFC的使用: 
    在共享DLL中使用MFC (程序运行需要dll) 
    在静态库中使用MFC (程序较大,运行时不需要dll) 
  3. 设置MFC程序主框架样式和标题 
  4. 高级功能 
    若是用不上“ActiveX控件”可以去掉勾选,若要涉及到网络编程就把“windows嵌套字”选上 

  5. 完成 

二、MFC程序执行流程

  1. 每创建一个MFC项目,默认包含3个类,“关于”对话框、主对话框类、初始化项目的App类。
  2. 项目生成后,都会有一个属于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
  1. 应用程序创建完成,程序开始运行,进入消息循环,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
  1. 当应用程序关闭时,会发送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开始,注册、创建、显示窗口,消息响应,程序终止,结束运行周期

三、对话框类

  1. afx_msg宏 
    afx_msg宏没有任何语法上的实际意义。afx_msg宏表示声明的是一个消息响应函数。
  2. DoDataExchange函数 
    用于存放各类控件的变量信息
  3. OnInitDialog函数 
    用于初始化对话框
  4. OnSysCommand系统指令响应函数,默认处理窗口最小化和最大化指令等
  5. OnPaint绘图消息响应函数
  6. 调出类向导 
    项目->类向导,快捷键Ctrl+shilft+X

    四、添加按钮

  7. 将默认对话框中的静态文本和原有按钮删除,添加新的按钮1和按钮2,在属性页中可以查看并设置。一般只需要修改两个属性,“Caption”和“ID”,前者是按钮的文本,后者是其唯一标识。 

  8. 为按钮添加事件处理函数

  9. 实现按钮的功能 
    添加按钮的控件型变量,变量命名一般以“m_”开头,后面部分为按钮功能简要说明。 

  10. 在初始化函数OnInitDialog中修改Exit对话框不可用
// TODO:  在此添加额外的初始化代码m_Exit.EnableWindow(FALSE);
  • 1
  • 2
  1. 添加处理事件
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
  1. 6.

VS2013 MFC基于对话框编程(创建工程)相关推荐

  1. C++小知识——VS2013 MFC基于对话框编程

    转载自:https://blog.csdn.net/wokaowokaowokao12345/article/details/53173966 前言 一直利用Qt库做Ui设计,但针对于一些MFC项目, ...

  2. MFC基于对话框添加图片控件

    建立MFC基于对话框工程,命名为AutoRecFunct. 第一种方法:拖动一个图片控件修改其ID为IDC_STATIC_PICTURE. 右击为其添加变量m_picture. 不知为何不能在初始化的 ...

  3. C++MFC基于对话框的编程——模态(非模态)对话框

    目录 一.添加MFC功能 二.创建基于MFC的应用程序框架 三.初识界面 四.上案例 1.拖控件button(两个) 2.改控件名字 2.1改名方法1 2.2改名方法2 3.添加两个新的对话框(Dia ...

  4. MFC基于对话框上插入MENU菜单栏并点击菜单弹出新窗口

    一.创建基于对话框的应用程序框架 1.选择菜单项文件->新建->项目,弹出"新建项目"对话框. 2.直接选择"MFC应用程序"或左侧面板中模板的Vi ...

  5. 【MFC】对话框中创建工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 使用MFC向导可以创建 ...

  6. 棋类对战小游戏(VS2012 MFC基于对话框)

    1需求分析 二打一棋用户需要的功能如下: (1)移动棋子:玩家通过鼠标点击能够实现棋子的移动,同时保证每次只能移动一格,且只能移动到未被占领的格子上. (2)吃掉棋子:同一条线上的己方两个棋子可以吃掉 ...

  7. 【mfc】vs2019创建MFC基于对话框的项目没有插入任何代码运行报错:0xC0000005:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突

    发现问题: 里面一堆乱七八槽的啥几把玩意儿? 修改项目名称为英文.欧了~ 总结:项目名称别用中文!!!虽然我也不知道为啥不能用

  8. MFC基于对话框的商场交易软件实现

    void CHomeViewDlg::OnClickedBtGuke() {// TODO: 在此添加控件通知处理程序代码CUserLoginDlg dlg;//注册窗框口类对象User user;u ...

  9. MFC基于对话框如何添加位图并使位图背景透明(TransparentBlt函数)

    MFC中比较重要的一部分学习内容即是绘图,而绘图时我们会发现如果想插入一张图片而又不想要图片的背景,或者已经把图片的背景用Ps去掉了,但是在MFC窗口中显示图片的时候又有了白色的背景,这个时候就可以使 ...

最新文章

  1. jumpserver 堡垒机环境搭建(图文详解)
  2. 有哪些足不出户,能用十天掌握的新技能?
  3. 理请求时出现未知错误.服务器返回的状态码为: 500,react-native
  4. linux下spark的python编辑_Linux下搭建Spark 的 Python 编程环境的方法
  5. 后来,我学会了每做完一件事
  6. 应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的(转载)...
  7. 牛客练习赛29: F. 算式子
  8. 三相短路电流计算机算法的原理什么,第三章电力系统三相短路电流及实用计算.ppt...
  9. 金融银行软件测试超大型攻略,最受欢迎的金融银行大揭秘附面试题
  10. 【Python】具有异常处理功能的计算BMI值的python程序
  11. [dfs树]「CEOI 2017」One-Way Streets
  12. 麦克斯韦方程组在电力传动领域的应用(1)
  13. 《股票魔法师》第6-7章读书分享
  14. 【信息汇总】重庆理工大学计算机考研
  15. 职场——领导的话你得品,你不走心,就容易走人
  16. 类似qq空间的点赞和取消赞
  17. mini2440 网络视频传输试验
  18. 【小毛驴的絮叨】2020年半年总结
  19. CH450/TM1637 驱动调试
  20. 深圳交易所新股申购规则

热门文章

  1. matlab 求复数的模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...
  2. python和sqlserver应用_Windows和Linux下使用Python访问SqlServer的方法介绍
  3. 从底部上滑失灵_宝鸡终于也有超火的高空玻璃水滑啦!就在玉池公社!8月10日见~...
  4. jq中查找上级_必备实用技能:在EXCEL中制作下拉菜单
  5. 西安理工大学 计算机考研不分专硕学硕吗,2021年西安理工大学计算机科学与工程学院考研专业目录_研究生考试范围 - 学途吧...
  6. python模拟键盘输入视频_python教程-模拟鼠标和键盘输入
  7. verilog实现伺服电机控制
  8. c语言图片raw保存,求指导,如何用c语言实现读取*.raw格式图像
  9. 操作系统原理_读懂操作系统之缓存原理(cache)(三)
  10. 《算法导论》学习总结 — 21.第16章 贪心算法(1) 基础入门1