MFC入门教程及解惑 V1.1

MFC入门教程及解惑 V1.1

ID:37501074

大小:815.42 KB

页数:9页

时间:2019-05-24

MFC入门教程及解惑 V1.1_第1页
MFC入门教程及解惑 V1.1_第2页
MFC入门教程及解惑 V1.1_第3页
MFC入门教程及解惑 V1.1_第4页
MFC入门教程及解惑 V1.1_第5页
资源描述:

《MFC入门教程及解惑 V1.1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MFC入门教程V1.12012年9月3日自动化系科协网络部JK说明:本教程旨在指导同学们在一定Win32程序运行理论的基础上快速上手,以对话框类为例做出基本的图形界面,同时解答一些常遇见的问题和常有的疑问,最后给出一些学习方法经验和资料。工程环境:VisualStudio2010补充知识点:MFC程序运行理论在你们学过的C++编程中,程序按照从main函数开始顺序执行整个过程,但是在MFC程序中,这种思想被颠覆了,显然通过简单的顺序流程是无法描述一个应用程序的所有过程的,于是在MFC中我们引入一下几个概念:事件驱动(产生消息)和消息响应,包括消息队列(各种产生的消息排成的队列),消息循

2、环(处理消息)。我们首先理解这几个概念。事件驱动:在MFC程序运行后,需要与操作者进行交互,这个交互的过程的开始就是操作者进行一些事件(例如:单击一个按钮或双击一个按钮,滚动鼠标滚轮,按下键盘上的键,甚至在程序界面上移动鼠标),操作者在执行这些操作的时候,MFC程序产生一个个消息,消息中包含了操作者进行操作的各种信息(例如你按下了键盘上字母A,MFC程序便会产生一个键盘上有键被按下的消息,这个消息其实是一个结构体,里边含有你按下的字母信息),MFC程序把他们投递到消息队列中,它们排队等待进入消息循环中接收处理,这样就开启了消息响应的过程,这便构成了一种由事件驱动的交互的方法。消息队列(

3、本质可以看做一个链表):从名字上看就可以理解,它是由事件驱动产生的消息排成的一个队,为什会有这个队列是因为MFC产生的消息很多,就像我前边说的你在程序界面移动鼠标,每移动一个点都会产生一个消息,所以消息其实很多,需要排个队,当然你也不用太担心,MFC处理消息的速度也是很快的。消息循环(本质就是一个函数):消息循环是程序初始化完成后MFC不断调用的一个函数,这个函数不断检测消息队列是否为空,若不空则按顺序提取消息处理它。当然,这里的处理不是指它其中包含有我们写的消息处理函数,而是它会把对应的消息发送给对应的处理函数(主要是传递消息中的参数),例如:消息循环从队列里取出了一个按下Butto

4、n1的消息,那么它就把消息发送给Button1按钮的处理函数(这个是我们自己写的),于是我们写的代码得以执行。有了上述概念后,我们就知道了,我们写MFC程序其实就是在建立一个个事件到对应的事件处理函数的对应关系,通俗点说,就是给老师要求的每种功能拖出来相应的控件,添加对应的处理函数,而程序的整体框架不是我们关心的主要内容。最后针对一些同学还比较迷惑具体的逻辑处理写在哪里,我再举个例子:例如你添加了一个查询按钮,查询你输入学号对应的学生名字,那么无论是你的逻辑代码还是调用数据库需要粘贴的模块化的代码都应该写在这个按钮的消息处理函数里(就是双击按钮产生的函数),因为按下这个按钮简化一点其实

5、就是调用了其对应的函数。原文里我讲到了两个重要的函数Messagebox和updatedata,我再补充一个很重要的虚函数,在类向导中对应类的虚函数页面可以添加,叫oninitdialog(),这个函数在你定义了一个对话框变量后,执行完构造函数后会执行,作用是进行一些初始化的操作,你们需要添加的初始化代码应该写在这里(例如等你们用到ListControl后,添加最上边的栏目时)。最后有问题欢迎人人上给我留言,我看到了及时给大家解决。————————————————分隔线下为原文内容——————————————1.创建MFC工程欢迎界面选择新建项目出现下边窗口,如图选择MFC应用程序,我

6、们此处起名叫helloMFC,确定进行下一步。下边进行MFC程序模版的设置,下一步直到出现下边的设置窗口。这个窗口中选择应用程序基于对话框类,去掉使用Unicode库(用于文字支持,有兴趣百度),同时选用在静态库中使用MFC(使得你的程序不依赖于系统,可以在别人的电脑上运行)。继续点击下一步直至完成,这样就完成了一个工程的建立。立刻运行一下,是不是这样的.。2.主函数在哪里?MFC工程不像控制台工程那样,有一个明确的主函数,作为程序的入口。MFC的运行是基于消息响应机制的。形象的说,一个MFC程序运行起来,完成了一系列初始化工作后,就静静的等在那里,等待用户的动作(也就是一个事件,譬如

7、按下按钮,选择菜单项,这个事件会向MFC的消息队列中投递一个对应的消息,MFC的消息循环检测到队列中的消息后就会执行对应的功能函数)。因此我们不需要追究代码运行的源头,只需要为相应的操作写对应的代码即可。3.结构解析我们看看一个对话框类的MFC程序生成的文件,我用逐行对应的方式。其中主程序和主要功能类的头文件和cpp文件是一一对应的h文件写定义,cpp实现helloMFC主程序头文件程序中的对话框的的头文件资源文件(你定义的类对象的宏定义)MF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。