C++通行编程实验--Windows程序设计(2)

C++通行编程实验--Windows程序设计(2)

ID:41032639

大小:77.50 KB

页数:13页

时间:2019-08-14

C++通行编程实验--Windows程序设计(2)_第1页
C++通行编程实验--Windows程序设计(2)_第2页
C++通行编程实验--Windows程序设计(2)_第3页
C++通行编程实验--Windows程序设计(2)_第4页
C++通行编程实验--Windows程序设计(2)_第5页
资源描述:

《C++通行编程实验--Windows程序设计(2)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Windows程序设计实验目的1.了解Windows程序的消息机制和编程模式2.了解MFC类库结构3.了解AppWizard自动生成的程序框架4.了解Windows程序运行结构5.学习简单的绘图操作6.了解利用VC++的MFC类库设计面向对象应用程序的过程实验内容内容一Windows编程模式Windows程序不同于控制台模式程序。在编程时有以下特点:1.多任务。Windows是一个多任务的操作系统,在同一时间内可以执行多个应用程序。应用程序无法独占所有系统资源(CPU、内存、屏幕、键盘、鼠标等)。Windows

2、操作系统必须小心管理所有系统资源,以便所有应用程序可以分享,而所有Windows应用程序则必须根据Windows操作系统特有的接口来执行操作,以确保Windows操作系统有效地管理系统资源。基于控制台模式的程序假定是在单用户操作系统下运行,运行的应用程序可以独占所有系统资源,不必考虑和其他应用的分享。2.通过窗口进行输入输出。Windows环境下,若想执行输入输出操作,必须在屏幕上开一个窗口,然后通过此窗口,执行输入与输出。应用程序也可以开多个窗口,执行多文档操作。而控制台模式下,只要执行简单的函数调用,就可以

3、将信息输出到屏幕上。3.通过消息接受数据输入。Windows环境下,所有的用户输入都由系统统一管理,系统接收到用户输入后,进行分析,将该输入以消息的形式发到合适的应用程序的消息队列中,每个应用程序都有一个消息队列。应用程序的运行过程就是不断从消息队列中取消息并进行处理的过程。1.数据输出以绘图模式进行。Windows环境下,绘图模式是基本的工作模式,用户所有的输出都需要通过图形设备接口进行。Windows应用程序的结构阅读以下内容,然后完成后面实验步骤中的内容WinMain()Windows应用程序都有一个主程

4、序WinMain(),该程序是Windows应用程序的主过程。在MFC应用框架下产生的应用程序不用显式写这个函数,系统自动提供。开发人员只需在自己的应用程序对象(该对象是从类CwinApp派生的应用程序类的实例)中重载有关应用程序初始化、应用程序退出的函数来使程序按照自己的意愿执行。WinMain()的执行过程是:调用应用程序对象的InitInstance成员函数来初始化应用程序,然后调用它的Run()成员函数来处理应用程序的消息循环。当程序运行结束时,Run()调用应用程序的ExitInstance成员函数来

5、做一些清除工作。下面是这一过程的示意图:注:上图中粗体字表示由系统提供的函数,正常体字表示由程序员提供或重载的函数CWinApp所有使用MFC类库的应用程序都有且只有一个“应用程序对象”,该对象负责应用程序初始化和退出时的清理工作,并且进行应用级的消息处理。应用程序对象所属的类从CWinApp类派生而来。应用程序对象提供初始化应用程序和运行应用程序的成员函数。该对象是整个应用程序创建的第一个对象,在系统调用WinMain()之前就已经生成,因此必须将该对象声明为全局变量。从CWinApp派生的应用程序类必须重载

6、InitInstance成员函数以便建立应用程序的主窗口对象。此外,在应用程序对象中还可以重载以下函数。·Run()循环进行消息处理。它负责检查消息队列,如果有消息,则分发它进行处理,如果没有消息,则调用OnIdle进行空闲时间处理。Run还调用ExitInstance来退出应用程序。·ExitInstance()负责程序退出时的清理工作。它只能由Run函数来调用。·OnIdle()当应用`程序的消息队列为空时,会执行一个缺省的消息循环,在该循环中调用OnIdle()函数。应用程序可以通过重载该函数来完成一些后

7、台工作。消息用VC写出的应用程序是消息驱动的。诸如鼠标单击、敲键盘、窗口移动之类的事件,由Windows以消息形式分发给正确的窗口进行处理。许多消息是用户与应用程序的交互产生的,当鼠标单击一个菜单项或工具条上的某一按钮时,就会产生命令消息,用户移动一个窗口或是放大、缩小一个窗口时,也会产生消息。程序的启动或停止、窗口失去焦点等都会产生消息。应用程序的run函数就负责检查并分发消息给合适的窗口处理。能够接受消息的类一般会在定义时声明一个“消息映象(MESSAGE_MAPPING)”,该映象说明了该类对象可以接受并

8、处理的消息,并且建立了消息和处理消息的成员函数之间的对应关系。VC++中可以接受消息的类都会定义一个消息映象,消息映象的定义自成一体,形式为:BEGIN_MESSAGE_MAP(类名,父类名)ON_COMMAND(消息名,处理消息的成员函数名)…END_MESSAGE_MAP()实验步骤1.单击菜单File

9、New,选择projects标签下的MFCAppWizard(.exe),在项

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

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

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