Windows应用程序概述

上传人:zou****hua 文档编号:179607125 上传时间:2023-01-02 格式:DOCX 页数:23 大小:657.42KB
收藏 版权申诉 举报 下载
Windows应用程序概述_第1页
第1页 / 共23页
Windows应用程序概述_第2页
第2页 / 共23页
Windows应用程序概述_第3页
第3页 / 共23页
资源描述:

《Windows应用程序概述》由会员分享,可在线阅读,更多相关《Windows应用程序概述(23页珍藏版)》请在装配图网上搜索。

1、第 1 章 Windows 应用程序概述 21.1 Windows 应用程序基本概念 21.1.1 Windows 应用程序界面 21.1.2 Windows应用程序与API函数 21.1.3 Windows 应用程序的句柄 31.1.4 Windows应用程序的数据类型 41.2 Windows程序设计平台开发环境 51.2.1 Visual C+简介 51.2.2 创建 Win 32 Console 应用程序 51.2.3创建Win 32应用程序61.2.4创建MFC Windows应用程序 71.3 消息映射121.3.1 事件与消息 121.3.2消息映射131.3.3 消息处理 14

2、1. 4消息处理实例 141.4.1 鼠标消息处理的实例141.4.2 键盘消息处理的实例16习题119实验1高级Windows应用程序开发基础21第 1 章 Windows 应用程序概述Windows是一种应用于计算机的操作系统,它为应用程序提供的多任务环境中具有一致 图形化窗口和菜单。在 Windows 操作系统上运行的应用程序叫做 Windows 应用程序。本章 主要介绍如下内容: Windows应用程序的基本概念; Windows应用程序的建立; 消息的概念; 消息处理函数。1.1 Windows 应用程序基本概念1.1.1 Windows 应用程序界面Windows是微软公司开发的一

3、种操作系统,以Windows作为平台运行的应用程序就叫 做Windows应用程序。Windows应用程序的一个显著特点是它有一个美观的图形用户界面 (GUI),参见图1-1。通过鼠标、键盘配合操作图形用户界面,大大方便了用户对Windows 应用程序的控制。仔细观察这个图形用户界面,它是由许多不同的图形元素组成的,例如图 标、标题栏、菜单栏、工具栏、状态栏、窗口边界、滚动条、控制按钮等组成。其中某些图 形元素在接受了用户的某个动作后,可以使Windows程序执行某种相应的操作。例如:在 图1-1中,用户通过鼠标点击菜单栏中的某个菜单项,Windows应用程序会产生一个下拉菜 单。用户通过鼠标点

4、击工具栏中文件打开图标的按钮时Windows应用程序弹出打开对话框。显然,这个图形用户界面是Windows应用程序与用户之间交换信息的一个“窗口”简 单的Windows应用程序只有一个窗口,复杂的Windows应用程序有多个窗口。设计一个或 一组满足要求的窗口,是Windows应用程序设计中的一项必不可少的任务。1.1.2 Windows应用程序与API函数Windows提供了大量可以在应用程序中调用的,用C语言编写的函数。这些由操作系 统提供的,用户可以使用的函数就叫做应用编程接口(application programming interface, API)函数。根据Windows API

5、函数的功能,可以把它们分为以下三大类型。(1)窗口管理函数:实现窗口创建、移动和修改等功能。(2)图形设备函数:实现图形的绘制及操作功能,这类函数的集合又叫做图形设备接 口。3)系统服务函数:实现与操作系统有关的一些功能。一关闭按机pklel |Bi| ft |J请看,这是写字板窗口控制莱早圏林艷 zti 时wm臬笙栏 T件 躺辺殊也ftAQ)格式Q)钳肋如工腥衆大EOl*i2i3i4,i,5 I - &i*Tif*879 八 l(b I J:宙口边界水平淒动华一状継一序啷妒/議F!图 1-1 Windows 应用程序的图形用户界面早期用来设计Windows应用程序的开发工具是软件开发工具包,

6、使用软件开发工具包 来设计Windows应用程序,实际上就是直接使用API函数来开发应用程序。由于用这种方 法来设计Windows应用程序需要编程人员记忆大量的API函数,所以用这种方法设计 Windows应用程序及其困难,从而阻碍了 Windows应用程序的推广。自从出现了面向对象程序设计方法后,出现“类”这种数据类型对Windows API函数进 行了封装,从而使Windows应用程序结构和开发工具发生了巨大的变化。目前,用来设计 Windows应用程序的开发工具大多是“面向对象”且“可视”的,例如Visual C+、Visual Basic、Visual Java、C+ Builder等

7、。由于这些可视化的开发工具大幅度地提高Windows程 序的开发效率,因此这些可视化开发工具得到了广泛的应用。例如,使用Visual C+的微软 基础类库(Microsoft Foundation Class,MFC)来设计Windows 应用程序。作为Windows 应 用程序设计开发人员,了解不同的Windows应用程序设计的方法是必要的。1.1.3 Windows 应用程序的句柄在 Windows 应用程序的窗口中,存在着很多如窗口、按钮、滚动条等复制的对象和实 例。为了在Windows应用程序中区分和使用它们,必须对它们进行标识。为了区别于普通 变量的标识,Windows把这种复杂对象

8、的标识叫做“句柄”。不用Windows对象的句柄具有 不同的类型,常用的句柄类型见表1-1。表 1-1 常用的句柄类型句柄的类型说明句柄的类型说明HWND窗口句柄HDC图形设备环境句柄HINSTANCE当前程序实例句柄HBITMAP位图句柄HCURSOR光标句柄HICON图标句柄HFONT字体句柄HMENU菜单句柄1.1.4 Windows 应用程序的数据类型Windows应用程序中的数据量非常大,为了提高程序的可读性,Windows应用程序给许多基本数据类型定义了别名,例如:typedefunsiged longDWORD;typedefintBOOL;typedefunsiged char

9、BYTE;typedefunsiged shortWORD;typedeffloatFLOAT;typedefunsiged intUNIT;除了这些基本数据类型的别名外Windows应用程序还使用了一些特定结构类型的数据, 例如下列的结构描述了一个点在窗口的位置坐标。typedef struct tag_POINTLONG x;LONG y; POINT;又例如下列的结构描述了一个矩形在窗口中的大小和位置。typedef struct tag_RECTLONG left;LONG top;LONG right;LONG bottom; RECT;在 Windows 应用程序设计中,既可以使用

10、 C 语言的基本数据类型,也可以使用 Windows 自定义的数据类型。所有 Windows 自定义的数据类型的关键字都要大写。1.2 Windows 程序设计平台开发环境1.2.1 Visual C+简介Visual C+是Windows环境最优秀的C+编程环境之一,它是微软公司开发的Visual Studio系列产品的一部分,具有集成开发环境,可以编辑C语言、C+等编程语言。VC+ 整合了方便的调试工具,特别是整合了 Win32 API应用程序、MFC、Microsoft.NET等框架。 Visual C+支持三种类型的应用程序框架的创建,下面分别介绍创建控制台应用程序、Win32 应用程

11、序和MFC Windows应用程序。1.2.2创建 Win 32 Console应用程序打开VC + 6.0,在选择“文件/新建”菜单后,在“新建”对话框的“项目”选项卡 中选择“Win32 Console Application”,输入项目名称First并选择好项目位置后,单击“确定” 按钮。在如图1-2所示的应用程序向导中,选择其中第三项,单击“完成”按钮,直接运行 以后出现如图 1-3 所示的窗口。在Win32 Console应用程序运行后产生的窗口中,有标题栏和垂直滚动条,没有菜单栏、 工具栏和状态栏,当用户用鼠标点击右上角关闭按钮,窗口会消失。这是一个功能比较简单 的窗口。图 1-2

12、 Win 32 Console 应用程序向导图 1-3 Win 32 Console 应用程序运行窗口由于控制台应用程序运行后的窗口功能比较简单,计算机用户经常把控制台应用程序 看成一种“遗物”。但是,实际上很多系统管理员以及一些编程高手还是非常喜欢控制台应 用程序。对于那些使用Visual Studio学习C/C+语言的初学者来说看,编写控制台应用程序 是必须经历的学习阶段。在 Windows 程序设计的学习过程中,部分算法的设计、开发工具的使用,仍然可以使 用简单、直观的控制台应用程序。当准备创建控制台应用程序时,在“新建项目”对话框中 直接选择“ Win32 Console Applic

13、ation”。在图1-2的Win 32 Console应用程序向导中,选择 第一项创建一个空的工程。选择“文件 / 新建”菜单后,在“新建”对话框的“文件”选 项卡中选择C+ Source File。在源程序的入口函数main中需要使用大量的API函数。 1.2.3创建 Win 32应用程序打开VC + 6.0,在选择“文件/新建”菜单后,在“项目”选项卡中选择“Win32 Application”,输入项目名称Second并选择好项目位置后,单击“确定”按钮。在如图1-3 所示的对话框中,选择一个典型的“Hello World!”程序,点击“完成”按钮,直接运行以 后出现如图1-4所示的窗口

14、。在图1-4所示的窗口中,以项目名Second作为标题栏中的标题,并且带有Win32应用程 序图标。菜单栏中有File和Help两个菜单选项。用户用鼠标点击任何一个菜单选项以后, 出现下拉子菜单栏。窗口中没有工具栏、状态栏和滚动条,当用户鼠标点击右上角关闭按钮, 窗口会消失。相比于控制台应用程序运行后的窗口,Win32应用程序运行后的窗口功能要多 一些。当准备创建Win32应用程序时,在“项目”选项卡中选择“Win32 Application”,选择 创建一个空的工程。选择“文件 / 新建”菜单后,在“新建”对话框的“文件”选项卡中 选择C+ Source File。在源程序的入口函数WinM

15、ain中需要使用大量的API函数。图 1-3 Win32 应用程序向导H Second问区|图 1-4 Win 32 应用程序运行窗口1.2.4创建MFC Windows应用程序用Visual C+的MFC来创建Windows应用程序窗口的步骤如下:(1) 打开VC + 6.0,选择“文件”一 “新建”菜单项,系统弹出“新建”对话框, 单击“工程”选项卡MFC AppWizard (exe),弹出如下图1-5所示的对话框。工程框中 输入工程的名称,例如“框架” , 位置编辑框中输入保存该工程文件的路径,单击“确定” 按钮。MFC应用程序向导将通过六个步骤生成Windows应用程序框架。(2)

16、在弹出的“MFC应用程序导一步骤1”的对话框中,选择要创建的应用程序类型,如下图1-6 所示。本例中,选择建立单文档应用程序,默认勾中“文档/查看体系结构支持”, 单击“下一步”按钮。图 1-5 MFC Windows 应用程序新建工程图 1-6 MFC 应用程序向导步骤 1(3) 在弹出的“MFC应用程序向导一步骤2”的对话框中,如下图1-7所示,询问是 否要包含数据库时,本例中选择“否”单击“下一步”按钮,则Windows应用程序框架不 能使用数据库。如果Windows应用程序需要使用数据库,则在“MFC应用程序向导一步骤 2”对话框中选择“查看数据库使用文件支持”,然后点击“数据源”按钮

17、,在弹出的对话框 中选择数据库连接的数据源名称,单击确定以后,回到如1-7所示的对话框。(4) 在弹出的“MFC应用程序向导一步骤3”的对话框中,把“Active控件”前面的 勾去掉,如下图1-8 所示。确保“没有,不需要”前面打勾默认选中,单击“下一步”按钮。区)您要包含数据库吗?FC应用程序向导-步驟2共6步r标题文件广查看数据库不使用文件支持广查看数据库使用文件支持如果您要包含数据库视图.就必须选择数据源.数据源上一歩 下一歩完成 | 取消图 1-7 MFC 应用程序向导步骤2您要使用什么样的复合文档支持?宦没有不需要r容器r微型服务器r完整服务器容器和服务器 厂活动文档服务器回 厂活动

18、文档容器(MJIFC应用程序向导-步骤3共6步没有选定数据源.上一歩 下一歩完成 | 取消您要支持复合文件吗?r是凶否0Q您还要包含其他支持吗?厂自动刨去掉勾f 厂ActiveX控件面”前 打印。,如 使用图 1-8 MFC 应用程序向导步骤 3(5) 在弹出的“MFC应用程序向导一步骤4”的对话框中,把“打印和打印预览 面的勾去掉,如下图1-9所示,单击“下一步”按钮。Windows应用程序框架中没有“ 和打印预览”菜单命令子项。如不勾选“打印和打印预览”,会出现这个菜单命令子项(6) 在弹出的“MFC应用程序向导一步骤5”的对话框中,接受所有的默认设置 下图 1-10 所示。你也可以根据个

19、人喜好,选择不同的窗口风格,不生成源文件备注, MFC库作为静态的动态链接库(Dynamic Link Library, DLL)。单击“下一步”按钮。图 1-9 MFC 应用程序向导步骤 4图 1-10 MFC 应用程序向导步骤 5(7) 在弹出的“MFC应用程序向导步骤6”的对话框中,显示向导创建的4个类,如图 1-11所示,单击“完成”按钮。在如图1-12 所示的对话框中,单击“确定”按钮。(8) 在VC + 6.0中,直接运行程序,弹出图1-13所示的MFC应用程序运行窗口。图 1-11 MFC 应用程序向导步骤 6图 1-12 MFC 应用程序向导新建工程信息图 1-13 MFC 应

20、用程序运行后的窗口在图1-13所显示窗口中,以项目名“框架”作为标题栏上的标题,并带有MFC图标, 菜单栏中带有“文件”、“编辑”、“查看”和“帮助”这4个菜单选项,用户用鼠标点击任何 一个菜单选项后,弹出包含一系列菜单命令子项的下拉列表框。工具栏中带有“文件、”“打 开”等8个工具按钮,其中有4个工具按钮显示出灰色的禁用状态。状态栏中显示“就绪” 状态,当用户鼠标点击右上角关闭按钮,窗口会消失。从上面三类运行窗口可以看出,MFC应用程序窗口要比Win 32 Console程序和Win 32 应用程序窗口包含更多的功能,所以本书主要介绍 MFC 应用程序的设计。如果把设计 Windows应用程

21、序框架所需要的API函数和数据封装成类,便可以利用类的继承性实现代 码的重用,并在派生过程中对它进行必要的改造,从而快速地获得所需要的类,提高应用程 序框架的开发速度。MFC正是满足上述要求的一个类库,它有一组专门的类,可以快速创 建应用程序的框架。Visual C+6.0通过MFC应用程序向导经过六个步骤为我们创建的程序构造了如图1-11 所示的 4个对象。这些对象是类库中一组专门的类的派生类对象。(1)应用程序类CWinApp的派生类CMyApp对象:生成的应用程序。(2)文档类CDocument的派生类CMyDoc对象:反映文件的内容。(3)视图类CView的派生类CMyView对象:文

22、档和用户之间进行交互的窗口。(4)窗口框架类CFrameWnd的派生类CMainFrame对象:限定应用程序窗口范围的对 象,其他可显示对象都在此范围内。1.3 消息映射1.3.1 事件与消息Windows 应用程序的一个突出特点是创建了应用程序窗口之后,就进入了一个等待状 态,直到接收到了某种刺激(例如,键盘输入、鼠标单击等)之后,程序会脱离等待状态对 这个刺激进行处理,而处理完毕后又进入等待状态。这些有可能触发计算机程序做出相应反 应的刺激,叫做“事件”。为了描述事件的各种信息,Windows定义了一个结构,这个结构 就叫做“消息”。消息的结构定义如下:typesdef structtag

23、MSG HWNDhwnd;/产生消息的窗口标识UINTmessage;/消息的标识WPARAMwParam;/消息的附加信息LPARAMlParam;/消息的附加信息WAORDtime;/消息产生的时间POINTpt;/消息产生时光标的位置 MSG当窗口中发生某种事件时,Windows操作系统会把该时间的相关信息填写到MSG结构 的各个域中,并把这个消息送到Windows应用程序,而应用程序则根据消息中的窗口标识 hwnd和消息标识message来确定由那个窗口中哪个消息响应函数来处理这个消息。Windows 已经把绝大多数事件的消息事先进行了定义,并定义了对消息的标识码,表 1-2列出了部分

24、常用的Windows消息。表 1-2 部分常用的 Windows 消息消息的标识说明WM_LBUTTONDOWN按下鼠标左键时产生的消息WM_LBUTTONUP放开鼠标左键时产生的消息WM_RBUTTONDOWN按下鼠标右键时产生的消息WM_LBUTTONUP放开鼠标右键时产生的消息WM_LBUTTONDOWN双击鼠标左键时产生的消息WM_RBUTTONDOWN双击鼠标右键时产生的消息WM_MOUSEMOVE鼠标移动时产生的消息WM_CHAR按下键盘非系统键时产生的消息WM_CLOSE关闭窗口产生的消息1.3.2消息映射通过消息映射,可以把消息(例如,鼠标左键按下消息WM_LBUTTONDOW

25、N)和MFC 中与该消息对应的消息响应函数(例如,鼠标左键按下消息响应函数OnLButtonDown)联 系起来。消息与消息响应函数之间对应的关系称为消息映射。在MFC Windows应用程 序中,主要通过类向导(ClassWizard )来进行消息映射,定义消息响应函数名称。下面介 绍两种方法来激活ClassWizard对话框:(1)选择View菜单下的ClassWizard菜单项。(2)直接按键Ctrl+W。当执行了以上操作后,窗口中将弹出MFC ClassWizard对话框,如下图1-14所示。在 Class name中选择视图类CMyView,在message中选择消息的标识。点击Ed

26、it Code按钮, 为视图类添加消息对应的响应函数。1.3.3 消息处理Windows 应用程序运行后出现的窗口中,用户进行鼠标输入或键盘输入时产生某种事 件,转换为消息以后放入操作系统的消息等待队列中。当从消息等待队列中取出一条消息时, 确定产生该消息的目标窗口。Windows将消息发送到目标窗口的消息队列中,从目标窗口的 消息队列中取出消息后发送给 Windows 应用程序,请求 Windows 应用程序把该消息传送给 当前实例的消息处理函数。最后, Windows 应用程序调用窗口当前实例的消息处理函数。 Windows接收消息、响应消息的过程见下图1-15所示。图 1-15接收消息、

27、响应消息图 1-14 MFC ClassWizard 对话框1.4 消息处理实例1.4.1 鼠标消息处理的实例当用户在窗口中对鼠标进行的操作时产生的消息,称为鼠标消息。下面通过一个实例分析Windows应用程序中鼠标消息的处理过程。例1-1首先显示一个标准的Windows窗口,当用户在窗口中按下鼠标左键时,窗口中 将弹出一个消息框,显示“鼠标左键被按下!”。【设计要点】:添加与按下鼠标左键这个消息相对应的消息处理函数,这个消息处理函 数会弹出一个消息框。步骤1:在Visual C+中选择“文件”(File)菜单的“新建”(New)菜单命令,弹出“新建(New)对话框。在工程列表中选中选项MFC

28、 AppWizard(exe),在“工程名(Project name) 栏中输入工程名称 Mouse,在Location栏中指定工程的存储路径。单击 OK按钮启动 AppWizard。步骤2:在接下来的AppWizard的各个步骤中按下列要求设置选项:(1)选择单文档界面(Single Document),其他接受系统设置。( 2)接受系统缺省设置。( 3)关闭 ActiveX Controls 复选框选项。( 4)关闭 Printing and print preview 复选框选项。(5) 接受系统缺省设置。(6) 接受系统缺省设置,单击Finish按钮,结束AppWizard。最后弹出工

29、程信息对话 框,单击OK按钮完成应用程序框架的设计。步骤3:选择“查看”(View) “建立类向导”(ClassWizard)菜单命令。在弹出的 MFC ClassWizard 对话框中选择 Message Maps 选项卡。在 Class name 列表中选择 CMouseView项,准备在视图类中处理鼠标消息。步骤4:在Object IDs栏中选中CMouseView,在Messages栏中选择准备处理的消息, 选中消息 WM_LBUTTONDOWN,如下图1-16所示。步骤5:在图1-16中双击选中的消息WM_LBUTTONDOWN,或者单击Add Function 按钮,系统将在Mem

30、ber functions栏中自动添加相应的消息处理函数OnLButtonDown(), 如下图 1-17 所示。步骤6:在图1-17中单击Edit Code按钮,ClassWizard将自动为该函数生成框架,同时 在代码编辑窗口中显示这个函数,如下图1-18所示。在OnLButtonDown的函数体中添加代 码:MessageBox(鼠标左键被按下! ”);图 1-17 添加消息处理函数图 1-16 添加消息图 1-18 自动生成消息处理函数图 1-19 例 1-1 程序运行结果步骤 6:直接运行该程序,您将会看到所创建的应用程序窗口。当在窗口中单击鼠标左 键时,将弹出一个对话框,如上图1-

31、19 所示。【分析】:产生窗口以后,用户在窗口中按下鼠标左键,这个事件的消息标识是WM_LBUTTONDOWN。通过类向导为视图类添加与该消息相对应的消息响应函数 OnLButtonDown (),在该函数中添加弹出消息框的API函数MessageBox ()。API函数是 用C语言编写的,可以直接在Windows应用程序中调用的函数。MessageBox ()将消息框 中显示的文本信息以字符串的形式作为参数。1.4.2 键盘消息处理的实例当用户对计算机键盘进行按键时产生的消息,称为键盘消息。下面通过一个实例分析Windows应用程序中键盘消息的处理过程。例 1-2 首先显示一个标准的 Win

32、dows 窗口,键盘输入的字符串显示在窗口。【设计要点】:键盘按下一个字符键的消息为 WM_CHAR,对应的消息处理函数为OnChar()。该消息处理函数的第一个参数就是所按键的字符。由于要显示字符串,应该有一个字符串类型变量记录用户在键盘中按下的多个字符。步骤 1:创建工程名称为 key 的单文档 Windows 应用程序框架,点击 Workspace 中的 ClassView选项卡,点击Key classes前面的“+”。用鼠标右键点击CKeyView类,在弹出的 快捷菜单中点击Add Member Variable菜单命令。步骤2:在弹出的如图1-20的对话框中,在Variable Ty

33、pe项中输入变量类型字符串类 CString,在Variable name项中输入变量名称Text,点击“OK”按钮。除了上述这种为视图类添加变量的方法之外,也可以鼠标双击视图类CKeyView,在代 码窗口中视图类CkeyView的定义中找到public,在后面声明一个字符串类型的变量名。例 如:public:CString Text;/该行是新增加的,用来声明公有变量图 1-20 添加成员变量步骤3:在视图类构造函数中初始化Text。用鼠标左键点击CKeyView前的“+”号,再 双击视图类的构造函数CKeyView (),在该函数体中添加如下代码。Text=;/字符串变量初始化为空串步骤

34、4:生成消息响应函数。点“查看”一 “建立类向导.Ctrl+W”,在Class Name 下拉列表中选择视图类CKeyView,在Object IDs列表框中选择CKeyView,在Messages列 表中找到 WM_CHAR,双击选中的消息,或者单击 Add Function按钮。系统在 Member functions栏中自动添加相应的消息处理函数OnChar ()。在该函数中添加如下代码。Text+=nChar;将OnChar ()函数中的第一个参数添加到字符串变量中。Invalidate( );/刷新窗口,调用 OnDraw()步骤5:显示字符串。窗口重绘函数OnDraw ()中加下列

35、代码:pDC-TextOut(O, 0, Text); 在窗口中显示字符串变量Text的值步骤6:直接运行该程序,当在键盘输入字符时,键盘的可打印字符可显示在窗口中, 如下图 1-20所示。【分析】:键盘输入字符消息处理函数OnChar ()中,第一个参数nChar为按键字符, 将该字符添加到字符串变量 Text。 Invalidate( )表示刷新窗口并自动调用窗口重绘函数 OnDraw ()。视图类的成员函数OnDraw ()表示在窗口中绘制图形,在其中添加的OnDraw 函数的参数pDC调用的TextOut ()函数表示在窗口中文本输出字符串。TextOut ()函数前两个参数表示字符串

36、输出的位置点坐标,第三个参数表示字符串变量。图 1-21 例 1-2 程序运行结果习题1一、判断题1. 简单地说,在Windows操作系统上运行的应用程序叫做Windows应用程序。2. 用户可以使用的、由操作系统提供的C+语言函数就叫做应用编程接口3. Windows应用程序都是基于消息驱动的。4. 在窗口中按下鼠标左键的消息是WM_LBUTTON。5. 在窗口中按下键盘中的任何一个键的消息是WM_CHAR。6. 在窗口中移动鼠标左键的消息是WM_MOUSEMOVE。二、选择题1. 工程项目名为My的MFC中的应用程序类是下列中的哪一个?A. CFrameAppB. CMyWndC.CMyA

37、ppD. CwinApp2. 窗口类CFrameWnd的派生类是。A. CFrameFrameB. CAppC.CMyAppD. CMyWnd3. 为了与程序的主函数名称相区别,Windows应用程序的主函数名称为。A. WinMainB. MainWinC.MainD. Win4. 应用程序的主函数的两个任务是创建应用程序窗口和。A.建立消息循环B.注册窗口类型C.描述窗口类型D.显示窗口5. 鼠标左键按下的消息响应函数的名称为。A. OnButtonDown B. Onlbuttondown C. OnLButtonDown D. Onbuttondown三、填空题1. 键盘上按任一个键的

38、消息是,对应的消息响应函是C2. 假设项目名为My, MFC AppWizard创建的4个派生类分是, ,和。3. 按下鼠标右键的消息 ,对应的消息响应函 。四、名词解释题1 . API2. 消息3. 消息映射 五、程序设计代码填空题1. 编写一个Windows单文档应用程序,运行首先显示一个标准的Windows窗口,当用户 在窗口中按下鼠标左键时,窗口中将弹出一个消息框,显示“鼠标左键被按下!”。在下列 空格处填写完成代码设计。void CMyView:/ TODO: Add your message handler code here and/or call defaultCView:On

39、LButtonDown(nFlags, point);2. 编写一个Windows单文档应用程序,运行首先显示一个标准的Windows窗口,当用户 在窗口中按下鼠标左键时,窗口中将弹出一个消息框,显示“鼠标右键被按下!”。在下列 空格处填写完成代码设计。void CMyView:/ TODO: Add your message handler code here and/or call defaultCView:OnRButtonDown(nFlags, point);六、编程题1. 编写一个MFC Windows应用程序,在应用程序窗口中,按下鼠标右键时弹出一个消息框, 显示编程者自己的名字

40、,消息框的标题是学号,有确认和取消两个按钮。2. 编写一个MFC Windows程序,在键盘中按下一个或多个字母键,该字符串出现在窗口中。3. 编写一个MFC Windows应用程序,应用程序窗口直接显示编程者自己的名字和学号。4. 编写一个MFC Windows应用程序,按下鼠标左键后应用程序窗口将显示编程者自己的名 字和学号。5. 编写一个MFC Windows应用程序,在应用程序窗口中双击鼠标左键,弹出一个消息框显 示“鼠标左键被双击”。实验 1 高级 Windows 应用程序开发基础一、实验目的1. 掌握MFC Windows应用程序框架的搭建;2. 掌握鼠标消息的特点;3. 掌握键盘

41、消息的特点;4. 掌握添加消息响应函数的方法;二、实验内容及步骤【预备】在D盘或E盘中建立一个Windows文件夹,以后的程序都放在该文件夹中。1创建一个 MFC Windows 应用程序,运行后在出现的窗口中双击鼠标左键,弹出消息框 显示“你双击了鼠标左键”。(1) 根据MFC AppWizard经过6个步骤创建MFC Window,项目名为DbClk。(2) 打开类向导,“class name”选择视图类(而不是默认的对话框类),“message”中选择双击鼠标左键的消息“WM_LBUTTONDBLCLK”。双击该消息,将对应的消息响应 函数OnLButtonDblClk添加到成员函数列表

42、中,点击“Edit Code”按钮。(3) 在视图类中找到消息响应函数OnLButtonDblClk,双击后在代码窗口中光标闪动的地 方找到该函数体,在函数体中添加MessageBox函数。添加的代码为: MessageBox( “你双击了鼠标左键”);( 4 )直接运行。如果先编译,会出现头文件编译问题,fatal error C1083: Cannot openprecompiled header file。为了解决预编译头文件的错误,点击菜单栏中的“工程/设置 /C+”,分类中选择预编译的头文件,选中不使用预补偿页眉,点“确定”按钮。重 新编译成功。2创建一个MFC Windows应用程

43、序,运行后在出现的窗口中拖动鼠标左键,弹出消息框 显示“你移动了鼠标”。(1) 根据MFC AppWizard经过6个步骤创建MFC Window,项目名为Move。(2) 打开类向导,“class name”选择视图类,“message”中选择双击鼠标左键的消息 “WM_MOUSEMOVE”。双击该消息,将对应的消息响应函数OnMouseMove添加到成员函数列表中,点击“ Edit Code ”按钮。(3) 在视图类中找到消息响应函数OnMouseMove,双击后在代码窗口中光标闪动的地方找 到该函数体,在函数体中添加MessageBox函数。添加的代码为:MessageBox(“ 你移动

44、了鼠标”);( 4)直接运行。3创建一个MFC Windows应用程序,运行后在出现的窗口中按下鼠标左键时,弹出消息 框显示“你按下了左键”;放开鼠标左键时,弹出消息框显示“你放开下了左键”。(1) 根据MFC AppWizard经过6个步骤创建MFC Window,项目名为Mouse。(2) 打开类向导,“class name”选择视图类,在“message”中选择鼠标左键按下的消息“WM_LBUTTONDOWN”,双击该消息,将对应的消息响应函数OnLButtonDown添 加到成员函数列表中。(3) 在“message”中选择鼠标左键放开的消息“WM_LBUTTONUP”,双击该消息,将

45、对应的消息响应函数OnLButtonUp添加到成员函数列表中,点“Edit Code”按钮。(4) 在视图类中找到消息响应函数OnLButtonDown,双击后在代码窗口中光标闪动的地方 进入到该函数体内,添加MessageBox函数。找到消息响应函数OnLButtonUp,双击后 在代码窗口中光标闪动的地方进入到该函数,添加另外一个MessageBox函数。 注意:只有将 OnLButtonDown 中的 MessageBox 函数屏蔽,才能看到放开鼠标左键时的响应。4创建一个 MFC Windows 应用程序,运行后在出现的窗口中按下一个字母键时,你按下 的字母出现在窗口中。你按下多个字母键时,字符串出现在窗口中。参考例 1-2 的步骤。三、实验小结及思考(由学生填写,重点写上机中遇到的问题)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!