由于毕业设计要用到MFC,因此本人这段时间开始学习MFC编程,边学边做,现将一些重要的知识点总结如下:

  1. 创建一个MFC程序,操作步骤很简单,要点就是选择MFC AppWizard(exe)、单文档或者多文档,然后点击完成。这样一个基本MFC框架代码就生成了。
  2. 用户通过使用资源编辑器来生成图形用户界面,VC++6.0可以处理的资源有Accelerator(快捷键)、Bitmap(位图)、Dialog(对话框)、Icon(图标)、Menu(菜单)、Toolbar(工具栏)、Version(版本信息)、String Table(字符串表)等。用户可以自主添加这些控件来制作图形界面。
  3. MFC编程的核心思想是消息映射、事件驱动。消息一般指用户向应用程序传递的信息,例如用户单击鼠标左键,这就是一个消息。应用程序接受到消息后,就会做出相应的反应。这里的反应是通过消息处理函数实现的。在用户添加控件后,通过为其建立类向导,设置好相应的消息类型,添加消息处理函数。最后由用户来实现这些消息处理函数。关键字afx_msg来表明某函数为消息处理函数。
  4. 除了给控件建立相应的消息映射函数,我们还需要给控件建立相应的变量,给控件添加建立类向导,选择成员变量一项,确定变量名、变量类型之后class wizard会自动添加相应的DDX函数,这是用来给指定对象建立数据交换的环境
  5. MFC是用c++将win32API以类的形式封装起来了。MFC提供了几个很重要的类:CWINApp类CDocument类CDialog类CFrameWnd类、CView类等,其中CWINApp类及其派生类负责整个程序的执行与终止,这也是我们看不到MFC程序入口的原因。CDocument类负责应用程序的数据管理。CDialog类负责显示和管理对话框。CFrameWnd类是边框窗口类的基类,单文档接口的边框窗口类是直接从CFrameWnd类派生的。CMDIFrameWnd类和CMDIChildWnd类都是从CFrameWnd类派生的,分别用来支持多文档接口的主边框窗口与子窗口。CView类提供了用户自定义视图类的公共接口。
  6. MFC新建的子对话框没有用于初始化对话框的OnInitDialog()函数,可以手动添加,也可以通过类向导添加。添加方法参考:https://jingyan.baidu.com/article/1974b289a697daf4b1f77495.html  注意要选择类对话框对应的类名,不是对话框的ID。
  7. 使用组框需要注意一些问题,建立一个组框之后,然后选择样式,在类型一栏先选择简单,确定下拉框的大小范围,然后再选择下移类型,这样一个下拉列表就完成了。
  8. MFC中可以给单文档程序添加背景图片,操作方法如下:https://blog.csdn.net/menshu1892/article/details/69569647
  9. MFC程序中,通过AfxMessageBox()这个函数来输出信息,相当于控制台程序里的printf()函数,这是一个非常重要的函数,在调试程序的过程中常常需要使用到这个函数。
  10. MFC程序中设置主窗口标题的方法:

    在C项目名App::InitInstance()中,找到m_pMainWnd所在的位置(在函数返回前)添加一句代码:

    m_pMainWnd->SetWindowText("Your Title");即可。

  11. 在新建一个对话框时,会自带‘确定‘‘取消‘按钮。确定按钮默认ID是IDOK,取消按钮默认ID是IDCANCEL,如果你没有在你的对话框类中重载OnOK,OnCancel函数的话,就调用基类的OnOk,OnCancel函数。这两个函数都调用EndDialog();函数来结束对话框。
  12. 有时候可能会遇到这样一种情况:在编译的时候,提示对话框的ID没有定义,但是这个这个时候明明定了对话框的ID,这种情况一般出现在一个对话框里调用另一个对话框这种情况。解决办法有两种:1、将对应的对话框ID换成数字,数字可以在资源文件resource.h里查看。2、在对话框的实现文件里包含resource.h。

这里我个人推荐一片关于MFC新手入门,写的很不错,链接:https://wenku.baidu.com/view/bcc4a34000f69e3143323968011ca300a6c3f6a5.html

MFC程序设计小结的更多相关文章

  1. MFC学习小结

    2019/1/13 视频来源 一.   MFC框架中一些重要的函数 1. InitInstance函数 应用程序类的一个虚函数,MFC应用程序的入口.初始化的作用. 2. PreCreateWindo ...

  2. MFC消息响应机制分析

    ---- 摘要: ---- MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,我们在这里,对它的整个消息映射机制进行了系统的分析 ...

  3. VC++/MFC(VC6)开发技术精品学习资料下载汇总

    工欲善其事,必先利其器,VC开发MFC Windows程序,Visual C++或Visual Studio是必须的,恩,这里都给你总结好了,拿去吧:VC/MFC开发必备Visual C++.Visu ...

  4. 基于MFC的Opengl实现动画

    对于了解MFC程序设计的来说,就太简单了.像我这种的,还是有必要记下来. OnCreate设置定时:SetTimer(1, 10, NULL);//设置#1定时器 key point void COp ...

  5. vc++深入跟踪MFC程序的执行流程

    在MFC程序设计的学习过程中最令人感到难受,甚至于有时会动摇学习者信心的就是一种对于程序的一切细节都没有控制权的感觉.这种感觉来源于学习者不知道一个MFC程序是如何运行起来的(即一个MFC程序的执行流 ...

  6. vs2015c++/MFC入门知识全集/实例规范书籍视频下载孙鑫c++对话框计算器基础控件使用教程系列

    VIP教程可免费看.可免费下载前部分试看教程地址:http://dwz.cn/4PcfPk免费下载地址:http://dwz.cn/mfc888 本课程目录 67章 [MFC项目开发第01天]Wind ...

  7. 图像处理程序框架—MFC相关知识点

    CDC:Windows使用与设备无关的图形设备环境(DC :Device Context) 进行显示 . MFC基础类库定义了设备环境对象类----CDC类. CDC与CGdiObject的关系 说道 ...

  8. 201771010126 王燕《面向对象程序设计(Java)》第十周学习总结

    实验十  泛型程序设计技术 实验时间 2018-11-1 1.实验目的与要求 (1) 理解泛型概念: 泛型:也称参数化类型(parameterized type),就是在定义类.接口和方法时,通过类型 ...

  9. MFC用串行化实现文档存储和读取功能

    在面向对象的程序设计中,一般都是用二进制文件来保存文档资料.在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件:利用串行化存取文件.其中用CFil ...

随机推荐

  1. python性能分析--cProfile

    Python标准库中提供了三种用来分析程序性能的模块,分别是cProfile, profile和hotshot,另外还有一个辅助模块stats.这些模块提供了对Python程序的确定性分析功能,同时也 ...

  2. WIN7 局域网共享打印机每次电脑重启后必须登录密码重新连接问题修复

    第一步,WIN+R(或者开始->附件->运行)输入gpedit或gpedit.msc 进入 第二步:把这几个拒绝的Guest给删除掉,也可以只删除""拒绝从王洛访问这台 ...

  3. vue+mint-ui的微博页面(支持评论@添加表情等)

    github地址 https://github.com/KyrieZbw/Sneakers (如果觉得不错就给个小星星) 预览地址 页面展示 技术栈 vue2 + vuex + vue-router ...

  4. pygame事件之——控制物体(飞机)的移动

    近来想用pygame做做游戏,在 xishui 大神的目光博客中学了学这东西,就上一段自己写的飞机大战的代码,主要是对键盘控制飞机的移动做了相关的优化 # -*- coding: utf-8 -*- ...

  5. Python学习之dict和set

    #coding=utf-8 # dict dict= {'bob': 40, 'andy': 30} print dict['bob'] # 通过dict提供的get方法,如果key不存在,可以返回N ...

  6. SendMessage 遇到的神坑

    场景 两个进程A和B,需要从A中设置B中的文本框的内容 过程 x.x.x.x. 成功获取了B中的内容,惊喜,离成功更近异步 xxxx ***** ....... x.x.x.x. 大约查找了几百个网页 ...

  7. 在GridControl表格控件中实现多层级主从表数据的展示

    在一些应用场景中,我们需要实现多层级的数据表格显示,如常规的二级主从表数据展示,甚至也有多个层级展示的需求,那么我们如何通过DevExpress的GridControl控表格件实现这种业务需求呢?本篇 ...

  8. 简单搭建SpringMVC框架详解

    在公司待了两年,用的一直是Spring+SpringMVC+Hibernate框架,都是公司自己搭建好的,自己从来没有主动搭建过,闲来无聊,自己搭建试试.一下即我搭建的过程以及搭建所遇到的问题,有部分 ...

  9. 项目管理器 ProjectManager Beta 10 发布

    本次更新内容: 可以设置主界面是否显示表格线 去除了开发日志界面的表格线,看起来好像好看一些 修复主界面时间显示的问题 自定义问候语 修复习惯统计记录时间显示错误的问题 修复创建项目时间错误问题 增加 ...

  10. YII2框架下使用PHPExcel导出柱状图

    导出结果: 首先,到官网下载PHPExcel插件包,下载后文件夹如下: 将Classes文件夹放入到项目公共方法内. 新建控制器(访问导出的方法):EntryandexitController < ...