【vb精品源码栏目提醒】:以下是网学会员为您推荐的vb精品源码-MFC入门教程及解惑 V1 1 - 讲义教程,希望本篇文章对您学习有所帮助。
MFC入门教程 V1.1 2012年9月3日 自动化系科协网络部 JK 说明本教程旨在指导同学们在一定Win32程序运行理论的基础上快速上手以对话框类为例做出基本的图形界面同时解答一些常遇见的问题和常有的疑问最后给出一些学习方法经验和资料。
工程环境Visual Studio 2010 补充知识点 MFC程序运行理论 在你们学过的C编程中程序按照从main函数开始顺序执行整个过程但是在MFC程序中这种思想被颠覆了显然通过简单的顺序流程是无法描述一个应用程序的所有过程的于是在MFC中我们引入一下几个概念事件驱动产生消息和消息响应包括消息队列各种产生的消息排成的队列消息循环处理消息。
我们首先理解这几个概念。
事件驱动 在MFC程序运行后需要与操作者进行交互这个交互的过程的开始就是操作者进行一些事件例如单击一个按钮或双击一个按钮滚动鼠标滚轮按下键盘上的键甚至在程序界面上移动鼠标操作者在执行这些操作的时候MFC程序产生一个个消息消息中包含了操作者进行操作的各种信息例如你按下了键盘上字母AMFC程序便会产生一个键盘上有键被按下的消息这个消息其实是一个结构体里边含有你按下的字母信息MFC程序把他们投递到消息队列中它们排队等待进入消息循环中接收处理这样就开启了消息响应的过程这便构成了一种由事件驱动的交互的方法。
消息队列本质可以看做一个链表 从名字上看就可以理解它是由事件驱动产生的消息排成的一个队为什会有这个队列是因为MFC产生的消息很多就像我前边说的你在程序界面移动鼠标每移动一个点都会产生一个消息所以消息其实很多需要排个队当然你也不用太担心MFC处理消息的速度也是很快的。
消息循环本质就是一个函数 消息循环是程序初始化完成后MFC不断调用的一个函数这个函数不断检测消息队列是否为空若不空则按顺序提取消息处理它。
当然这里的处理不是指它其中包含有我们写的消息处理函数而是它会把对应的消息发送给对应的处理函数主要是传递消息中的参数例如消息循环从队列里取出了一个按下Button1的消息那么它就把消息发送给Button1按钮的处理函数这个是我们自己写的于是我们写的代码得以执行。
有了上述概念后我们就知道了我们写MFC程序其实就是在建立一个个事件到对应的事件处理函数的对应关系通俗点说就是给老师要求的每种功能拖出来相应的控件添加对应的处理函数而程序的整体框架不是我们关心的主要内容。
最后针对一些同学还比较迷惑具体的逻辑处理写在哪里我再举个例子例如你添加了一个查询按钮查询你输入学号对应的学生名字那么无论是你的逻辑代码还是调用数据库需要粘贴的模块化的代码都应该写在这个按钮的消息处理函数里就是双击按钮产生的函数因为按下这个按钮简化一点其实就是调用了其对应的函数。
原文里我讲到了两个重要的函数Messagebox和updatedata我再补充一个很重要的虚函数在类向导中对应类的虚函数页面可以添加叫oninitdialog这个函数在你定义了一个对话框变量后执行完构造函数后会执行作用是进行一些初始化的操作你们需要添加的初始化代码应该写在这里例如等你们用到ListControl后添加最上边的栏目时。
最后有问题欢迎人人上给我留言我看到了及时给大家解决。
————————————————分隔线下为原文内容—————————————— 1. 创建MFC工程 欢迎界面选择新建项目出现下边窗口如图选择MFC应用程序我们此处起名叫helloMFC确定进行下一步。
下边进行MFC程序模版的设置下一步直到出现下边的设置窗口。
这个窗口中选择应用程序基于对话框类去掉使用Unicode库用于文字支持有兴趣百度同时选用在静态库中使用MFC使得你的程序不依赖于系统可以在别人的电脑上运行。
继续点击下一步直至完成这样就完成了一个工程的建立。
立刻运行一下是不是这样的.。
2. 主函数在哪里 MFC工程不像控制台工程那样有一个明确的主函数作为程序的入口。
MFC的运行是基于消息响应机制的。
形象的说一个MFC程序运行起来完成了一系列初始化工作后就静静的等在那里等待用户的动作