2WINDOWS应用程序设计.pdf

上传人:qwe****56 文档编号:71061557 上传时间:2023-01-31 格式:PDF 页数:43 大小:2.67MB
返回 下载 相关 举报
2WINDOWS应用程序设计.pdf_第1页
第1页 / 共43页
2WINDOWS应用程序设计.pdf_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《2WINDOWS应用程序设计.pdf》由会员分享,可在线阅读,更多相关《2WINDOWS应用程序设计.pdf(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、WINDOWS应用程序设计应用程序设计应用程序设计应用程序设计2010-08-242主要内容主要内容主要内容主要内容:?Windows的发展历史的发展历史的发展历史的发展历史?Windows操作系统特点操作系统特点操作系统特点操作系统特点?Windows应用程序设计特点应用程序设计特点应用程序设计特点应用程序设计特点?Windows源程序组成结构源程序组成结构源程序组成结构源程序组成结构?Windows应用程序开发工具应用程序开发工具应用程序开发工具应用程序开发工具2010-08-243Windows的发展历史的发展历史的发展历史的发展历史?Xerox公司研究机构公司研究机构公司研究机构公司研

2、究机构(PARC)?Apple Computer公司公司公司公司GUI系统系统系统系统(1、Apple Lisa,2、Apple Macintosh)?Microsoft公司公司公司公司GUI系统系统系统系统(X86 Windows1.0,1985?Windows3.0,1990.5?Windows3.1,1996?Windows95,1995)2010-08-244Windows操作系统特点操作系统特点操作系统特点操作系统特点?直观直观直观直观、高效的图形用户界面高效的图形用户界面高效的图形用户界面高效的图形用户界面,易学易用易学易用易学易用易学易用?用户界面统一用户界面统一用户界面统一用户

3、界面统一、友好友好友好友好、漂亮漂亮漂亮漂亮?丰富的设备无关的图形操作丰富的设备无关的图形操作丰富的设备无关的图形操作丰富的设备无关的图形操作(Windows的图形设备接口的图形设备接口的图形设备接口的图形设备接口GDI)?多任务多任务多任务多任务2010-08-245一个典型的一个典型的一个典型的一个典型的Windows程序程序程序程序2010-08-246Windows应用程序特点应用程序特点应用程序特点应用程序特点?传统的传统的传统的传统的MS-DOS程序主要采用顺序的程序主要采用顺序的程序主要采用顺序的程序主要采用顺序的、关联的关联的关联的关联的、过程驱动的程序设计方法过程驱动的程序设

4、计方法过程驱动的程序设计方法过程驱动的程序设计方法2010-08-2471、事件驱动事件驱动事件驱动事件驱动?事件驱动程序设计是一种全新的程序设事件驱动程序设计是一种全新的程序设事件驱动程序设计是一种全新的程序设事件驱动程序设计是一种全新的程序设计方法计方法计方法计方法,它不是由事件的顺序来控制它不是由事件的顺序来控制它不是由事件的顺序来控制它不是由事件的顺序来控制,而是由事件的发生来控制而是由事件的发生来控制而是由事件的发生来控制而是由事件的发生来控制2010-08-2482、图形界面图形界面图形界面图形界面?Windows的图形输出是由图形设备接口的图形输出是由图形设备接口的图形输出是由图

5、形设备接口的图形输出是由图形设备接口(GDI)来完成的来完成的来完成的来完成的,GDI是系统原始的图是系统原始的图是系统原始的图是系统原始的图形输出库形输出库形输出库形输出库,它用于在屏幕上输出像素它用于在屏幕上输出像素它用于在屏幕上输出像素它用于在屏幕上输出像素、在在在在打印机上输出硬拷贝以及绘制打印机上输出硬拷贝以及绘制打印机上输出硬拷贝以及绘制打印机上输出硬拷贝以及绘制Windows用用用用户界面户界面户界面户界面。2010-08-2493、面向对象面向对象面向对象面向对象?Windows支持丰富的用户接口对象支持丰富的用户接口对象支持丰富的用户接口对象支持丰富的用户接口对象,包包包包括

6、括括括:窗口窗口窗口窗口、图标图标图标图标、菜单菜单菜单菜单、对话框等等对话框等等对话框等等对话框等等。易于编程易于编程易于编程易于编程。2010-08-2410Windows应用程序中的关键名词应用程序中的关键名词应用程序中的关键名词应用程序中的关键名词?窗口窗口窗口窗口?事件驱动事件驱动事件驱动事件驱动?句柄句柄句柄句柄?消息消息消息消息2010-08-2411窗口边界窗口边界窗口边界窗口边界工作区工作区工作区工作区控制菜单框控制菜单框控制菜单框控制菜单框下拉菜单下拉菜单下拉菜单下拉菜单水平滚动条水平滚动条水平滚动条水平滚动条垂直滚动条垂直滚动条垂直滚动条垂直滚动条最大化按钮最大化按钮最大

7、化按钮最大化按钮最小化按钮最小化按钮最小化按钮最小化按钮标题栏标题栏标题栏标题栏WINDOWS应用程序应用程序应用程序应用程序:窗口窗口窗口窗口2010-08-2412编写一个编写一个编写一个编写一个Windows应用程序首先应创建一个或多个窗口应用程序首先应创建一个或多个窗口应用程序首先应创建一个或多个窗口应用程序首先应创建一个或多个窗口,随后随后随后随后应用程序的运行过程即是窗口内部应用程序的运行过程即是窗口内部应用程序的运行过程即是窗口内部应用程序的运行过程即是窗口内部、窗口与窗口之间窗口与窗口之间窗口与窗口之间窗口与窗口之间、窗口与窗口与窗口与窗口与系统之间进行数据处理与数据交换的过程

8、系统之间进行数据处理与数据交换的过程系统之间进行数据处理与数据交换的过程系统之间进行数据处理与数据交换的过程。应用程应用程应用程应用程序与用序与用序与用序与用户之间户之间户之间户之间交互的交互的交互的交互的接口环接口环接口环接口环境境境境系统管理系统管理系统管理系统管理应用程序应用程序应用程序应用程序的基本单位的基本单位的基本单位的基本单位Win应用程序应用程序应用程序应用程序基本的操作单元基本的操作单元基本的操作单元基本的操作单元2010-08-2413Windows应用程序应用程序应用程序应用程序:事件驱动事件驱动事件驱动事件驱动?事件驱动程序设计是一种全新的程序设事件驱动程序设计是一种全

9、新的程序设事件驱动程序设计是一种全新的程序设事件驱动程序设计是一种全新的程序设计方法计方法计方法计方法,它不是由事件的顺序来控制它不是由事件的顺序来控制它不是由事件的顺序来控制它不是由事件的顺序来控制,而是由事件的发生来控制而是由事件的发生来控制而是由事件的发生来控制而是由事件的发生来控制2010-08-2414?事件驱动围绕着消息的产生与处理展事件驱动围绕着消息的产生与处理展事件驱动围绕着消息的产生与处理展事件驱动围绕着消息的产生与处理展开开开开,一条消息是关于发生的事件的消息一条消息是关于发生的事件的消息一条消息是关于发生的事件的消息一条消息是关于发生的事件的消息。事件驱动是靠消息循环机制

10、来实现的事件驱动是靠消息循环机制来实现的事件驱动是靠消息循环机制来实现的事件驱动是靠消息循环机制来实现的。2010-08-2415Getmessage(&msg)将返回假值2010-08-2416句柄是一个句柄是一个句柄是一个句柄是一个4字节长的数值字节长的数值字节长的数值字节长的数值,用于标识用于标识用于标识用于标识应用程序中不同的应用程序中不同的应用程序中不同的应用程序中不同的对象对象对象对象和和和和同类对象中不同类对象中不同类对象中不同类对象中不同的实例同的实例同的实例同的实例窗口窗口窗口窗口按钮按钮按钮按钮图标图标图标图标滚动条滚动条滚动条滚动条输出设备输出设备输出设备输出设备控制控制

11、控制控制文件文件文件文件Windows应用程序应用程序应用程序应用程序:句柄句柄句柄句柄字体句柄HFONT画笔句柄HPEN菜单句柄HMENU画刷句柄HBRUSH图标句柄HICON光标句柄HCURSOR位图句柄HBITMAP实例句柄HINSTANCE设备环境句柄HDC窗口句柄HWND含义句柄类型含义句柄类型句柄可以理解为数据类型句柄可以理解为数据类型句柄可以理解为数据类型句柄可以理解为数据类型,表示内部表格的索引值表示内部表格的索引值表示内部表格的索引值表示内部表格的索引值2010-08-2417Windows程序的命名规则程序的命名规则程序的命名规则程序的命名规则1?变量的匈牙利命名规则m_i

12、Num类成员变量m_iCount,iNumintihWnd,hDlg,hBrushhandlehdwFlagsDWORDdwcsName,csLabelCStringcsCString,CmainClassCchArray,chTextcharchbIsPresent,bValidBooLeanb例子数据类型前缀2010-08-2418Windows程序的命名规则程序的命名规则程序的命名规则程序的命名规则2?图形资源符号前缀图形资源符号前缀图形资源符号前缀图形资源符号前缀IDS_CAUTION字符串IDS_IDR_MAINFRAM多种类型共享的资源IDIDR_IDP_SEARCH_FOR消息框

13、提示IDP_IDI_APP_ICON图标资源IDI_IDD_SEARCH对话框资源标识符IDD_IDC_REPORT对话框控件IDC_IDC_TARGET_CURSOR光标资源IDC_IDB_LOGO位图资源IDB_ID_TOOL_SEARCH菜单项或工具栏按钮ID_例子符号类型前缀2010-08-2419Windows应用程序应用程序应用程序应用程序:消息消息消息消息?所有的所有的所有的所有的Windows应用程序都是应用程序都是应用程序都是应用程序都是事件驱动事件驱动事件驱动事件驱动的的的的;?消息处理消息处理消息处理消息处理是是是是windows应用程序的核心应用程序的核心应用程序的核心

14、应用程序的核心;?消息就是操作系统通知应用程序某件事情已经消息就是操作系统通知应用程序某件事情已经消息就是操作系统通知应用程序某件事情已经消息就是操作系统通知应用程序某件事情已经发生的一种方式发生的一种方式发生的一种方式发生的一种方式;?当用户键入当用户键入当用户键入当用户键入、移动鼠标或双击鼠标移动鼠标或双击鼠标移动鼠标或双击鼠标移动鼠标或双击鼠标,或者用户或者用户或者用户或者用户改变窗口的大小改变窗口的大小改变窗口的大小改变窗口的大小,都将向适当的窗口发送消息都将向适当的窗口发送消息都将向适当的窗口发送消息都将向适当的窗口发送消息?一个窗口可以向另一个窗口发送消息一个窗口可以向另一个窗口发

15、送消息一个窗口可以向另一个窗口发送消息一个窗口可以向另一个窗口发送消息,并且大并且大并且大并且大多数窗口通过向其他窗口发送一个稍有不向的多数窗口通过向其他窗口发送一个稍有不向的多数窗口通过向其他窗口发送一个稍有不向的多数窗口通过向其他窗口发送一个稍有不向的消息来响应消息消息来响应消息消息来响应消息消息来响应消息。?与所有的与所有的与所有的与所有的Windows应用程序一样应用程序一样应用程序一样应用程序一样,MFC应用应用应用应用程序也要处理消息程序也要处理消息程序也要处理消息程序也要处理消息2010-08-2420Windows应用程序利用应用程序利用应用程序利用应用程序利用Windows消

16、息消息消息消息(Message)与应用程序及系统进行信息交换与应用程序及系统进行信息交换与应用程序及系统进行信息交换与应用程序及系统进行信息交换。typedeftypedeftypedeftypedef structstructstructstruct tagMSGtagMSGtagMSGtagMSGHWND HWND HWND HWND hwndhwndhwndhwnd;窗口句柄窗口句柄窗口句柄窗口句柄UINT message;UINT message;UINT message;UINT message;消息值消息值消息值消息值,由由由由Windows.h头文件中的宏定义来标识头文件中的宏定

17、义来标识头文件中的宏定义来标识头文件中的宏定义来标识WPARAM WPARAM WPARAM WPARAM wParamwParamwParamwParam;包含有关消息的附加信息包含有关消息的附加信息包含有关消息的附加信息包含有关消息的附加信息,不同消息其值有所不同不同消息其值有所不同不同消息其值有所不同不同消息其值有所不同LPARAM LPARAM LPARAM LPARAM lParamlParamlParamlParam;DWORD time;DWORD time;DWORD time;DWORD time;指定消息送至队列的时间指定消息送至队列的时间指定消息送至队列的时间指定消息送至

18、队列的时间POINT pt;POINT pt;POINT pt;POINT pt;指定消息发送时屏幕光标的位置指定消息发送时屏幕光标的位置指定消息发送时屏幕光标的位置指定消息发送时屏幕光标的位置,其数据类型其数据类型其数据类型其数据类型POINT也是一个结构也是一个结构也是一个结构也是一个结构体体体体MSG;MSG;MSG;MSG;消息号消息号消息号消息号:由事先定义好的消息名标识由事先定义好的消息名标识由事先定义好的消息名标识由事先定义好的消息名标识字参数字参数字参数字参数(wParam):用于提供消息的用于提供消息的用于提供消息的用于提供消息的附附附附加信息加信息加信息加信息长字参数长字参

19、数长字参数长字参数(lParam):用于提供消息的用于提供消息的用于提供消息的用于提供消息的附加信息附加信息附加信息附加信息消消消消息息息息typedeftypedeftypedeftypedef structstructstructstructtagPOINTtagPOINTtagPOINTtagPOINTLONG xLONG xLONG xLONG x;LONG y;LONG y;LONG y;LONG y;POINT;POINT;POINT;POINT;Windows应用程序应用程序应用程序应用程序:消息消息消息消息2010-08-2421标准标准标准标准Windows 消息值消息值消息

20、值消息值?键盘消息WM_KEYDOWN、WM_KEYUP、WM_CHAR?鼠标消息WM_MOUSEMOVE、WM_RBUTTONDOWN、WM_LBUTTONDOWN、WM_LBUTTONDBLCLICK?窗口消息WM_PAINT、WM_TIMER2010-08-2422Windows应用程序组成应用程序组成应用程序组成应用程序组成?1.C,CPP源程序文件源程序文件源程序文件源程序文件:源程序文件包含了应用源程序文件包含了应用源程序文件包含了应用源程序文件包含了应用程序的数据程序的数据程序的数据程序的数据、类类类类、功能逻辑模块功能逻辑模块功能逻辑模块功能逻辑模块(包括事件处包括事件处包括事

21、件处包括事件处理理理理、用户界面对象初始化以及一些辅助例程用户界面对象初始化以及一些辅助例程用户界面对象初始化以及一些辅助例程用户界面对象初始化以及一些辅助例程)的定义的定义的定义的定义。?2.H,HPP头文件头文件头文件头文件:头文件包含了头文件包含了头文件包含了头文件包含了CPP、C源文源文源文源文件中所有数据件中所有数据件中所有数据件中所有数据、模块模块模块模块、类的声明类的声明类的声明类的声明。当一个当一个当一个当一个CPP、C源文件要调用另一个源文件要调用另一个源文件要调用另一个源文件要调用另一个CPP、C中所定义的模中所定义的模中所定义的模中所定义的模块功能时块功能时块功能时块功能

22、时,需要包含那个需要包含那个需要包含那个需要包含那个CPP、C文件对应的文件对应的文件对应的文件对应的头文件头文件头文件头文件。?3.资源文件资源文件资源文件资源文件2010-08-2423?Windows应用程序的生成同应用程序的生成同应用程序的生成同应用程序的生成同DOS下类似下类似下类似下类似,也要经过编译也要经过编译也要经过编译也要经过编译、链接两个阶段链接两个阶段链接两个阶段链接两个阶段,只是增加只是增加只是增加只是增加了资源编译过程了资源编译过程了资源编译过程了资源编译过程,基本流程如下图基本流程如下图基本流程如下图基本流程如下图:2010-08-2424入口函数入口函数入口函数入

23、口函数WinMain窗口函数窗口函数窗口函数窗口函数WndProcWndProcWndProcWndProcWindows应用程序应用程序应用程序应用程序构成基构成基构成基构成基本框架本框架本框架本框架包含各种包含各种包含各种包含各种数据类型数据类型数据类型数据类型、数据结构数据结构数据结构数据结构与函数等与函数等与函数等与函数等1.所有应用程序的入口所有应用程序的入口所有应用程序的入口所有应用程序的入口,类似类似类似类似Main函数函数函数函数,2.完成一系列的定义和初始化完成一系列的定义和初始化完成一系列的定义和初始化完成一系列的定义和初始化,并产生消息循环并产生消息循环并产生消息循环并产

24、生消息循环WinMain和和和和WndProc是是是是Windows应用程序的主体应用程序的主体应用程序的主体应用程序的主体WINDOWS源程序组成结构源程序组成结构源程序组成结构源程序组成结构2010-08-2425(1)WinMain函数函数函数函数三个基本的组成部分三个基本的组成部分三个基本的组成部分三个基本的组成部分:函数说明函数说明函数说明函数说明、初始化初始化初始化初始化和和和和消息循环消息循环消息循环消息循环功能功能功能功能注册窗口类注册窗口类注册窗口类注册窗口类,建立窗口及执行必要的初始化建立窗口及执行必要的初始化建立窗口及执行必要的初始化建立窗口及执行必要的初始化进入消息循环

25、进入消息循环进入消息循环进入消息循环,根据接受的消息调用相应的处理过程根据接受的消息调用相应的处理过程根据接受的消息调用相应的处理过程根据接受的消息调用相应的处理过程当消息循环检索到当消息循环检索到当消息循环检索到当消息循环检索到WM_QUIT时终止程序运行时终止程序运行时终止程序运行时终止程序运行WinMain函数函数函数函数WinMain函数说明函数说明函数说明函数说明WinMain函数的说明如下函数的说明如下函数的说明如下函数的说明如下:intintintint WINAPI WINAPI WINAPI WINAPI WinMainWinMainWinMainWinMain(HINSTA

26、NCE HINSTANCE HINSTANCE HINSTANCE hThisInsthThisInsthThisInsthThisInst,应用程序当前实例句柄应用程序当前实例句柄应用程序当前实例句柄应用程序当前实例句柄HINSTANCeHINSTANCeHINSTANCeHINSTANCe hPrevInsthPrevInsthPrevInsthPrevInst,应用程序其他实例句柄应用程序其他实例句柄应用程序其他实例句柄应用程序其他实例句柄LPSTR LPSTR LPSTR LPSTR lpszCmdLinelpszCmdLinelpszCmdLinelpszCmdLine,指向程序命令

27、行参数的指针指向程序命令行参数的指针指向程序命令行参数的指针指向程序命令行参数的指针IntIntIntInt nCmdShownCmdShownCmdShownCmdShow应用程序开始执行时窗口显示方式的整数值标识应用程序开始执行时窗口显示方式的整数值标识应用程序开始执行时窗口显示方式的整数值标识应用程序开始执行时窗口显示方式的整数值标识)注意注意注意注意!Win是多任务管理的是多任务管理的是多任务管理的是多任务管理的,同一同一同一同一应用程序的多个窗口可能会同时存应用程序的多个窗口可能会同时存应用程序的多个窗口可能会同时存应用程序的多个窗口可能会同时存在在在在,Win系统对每个窗口的执行称

28、系统对每个窗口的执行称系统对每个窗口的执行称系统对每个窗口的执行称为一个实例为一个实例为一个实例为一个实例,并用一个实例句柄来并用一个实例句柄来并用一个实例句柄来并用一个实例句柄来唯一标识唯一标识唯一标识唯一标识2010-08-2426(2)初始化初始化初始化初始化i.窗口类定义窗口类定义窗口类定义窗口类定义通过给窗口类数据结构通过给窗口类数据结构通过给窗口类数据结构通过给窗口类数据结构WNDCLASS赋值完成赋值完成赋值完成赋值完成,该数据结该数据结该数据结该数据结构中包含窗口类的各种属性构中包含窗口类的各种属性构中包含窗口类的各种属性构中包含窗口类的各种属性。窗口类定义常用以下函数窗口类定

29、义常用以下函数窗口类定义常用以下函数窗口类定义常用以下函数:LoadIcon的作用是在应用程序中加载一个窗口图标的作用是在应用程序中加载一个窗口图标的作用是在应用程序中加载一个窗口图标的作用是在应用程序中加载一个窗口图标。其原型为其原型为其原型为其原型为:HICON HICON HICON HICON LoadIcon(HINSTANCELoadIcon(HINSTANCELoadIcon(HINSTANCELoadIcon(HINSTANCE hInstance,LPCTSTRhInstance,LPCTSTRhInstance,LPCTSTRhInstance,LPCTSTR lpIcon

30、NamelpIconNamelpIconNamelpIconName)图标资源名或系统预定义图标标识名图标资源名或系统预定义图标标识名图标资源名或系统预定义图标标识名图标资源名或系统预定义图标标识名图标资源所在的模块句柄图标资源所在的模块句柄图标资源所在的模块句柄图标资源所在的模块句柄,NULLNULLNULLNULL则使用系统预定义图标则使用系统预定义图标则使用系统预定义图标则使用系统预定义图标初初初初始始始始化化化化显示窗口显示窗口显示窗口显示窗口创建窗口实例创建窗口实例创建窗口实例创建窗口实例窗口类的注册窗口类的注册窗口类的注册窗口类的注册:窗口类必须先注册后使用窗口类必须先注册后使用窗

31、口类必须先注册后使用窗口类必须先注册后使用窗口类的定义窗口类的定义窗口类的定义窗口类的定义:定义窗口的形式与功能定义窗口的形式与功能定义窗口的形式与功能定义窗口的形式与功能LoadIconLoadIconLoadIconLoadIconLoadCursorLoadCursorLoadCursorLoadCursorGetStockObjectGetStockObjectGetStockObjectGetStockObjectRegisterClassRegisterClassRegisterClassRegisterClassCreateWindowShowWindowShowWindowSh

32、owWindowShowWindow,UpdateWindowUpdateWindowUpdateWindowUpdateWindow2010-08-2427ii.注册窗口类注册窗口类注册窗口类注册窗口类Win系统本身提供部分预定义的窗口类系统本身提供部分预定义的窗口类系统本身提供部分预定义的窗口类系统本身提供部分预定义的窗口类,程序员也可以程序员也可以程序员也可以程序员也可以自定义窗口类自定义窗口类自定义窗口类自定义窗口类,窗口类必须先注册后使用窗口类必须先注册后使用窗口类必须先注册后使用窗口类必须先注册后使用。窗口类的注窗口类的注窗口类的注窗口类的注册由函数册由函数册由函数册由函数Regi

33、sterClass()实现实现实现实现。RegisterClass(&wndclassRegisterClass(&wndclassRegisterClass(&wndclassRegisterClass(&wndclass);/);/);/);/wndclasswndclasswndclasswndclass为窗口类结构为窗口类结构为窗口类结构为窗口类结构RegisterClassRegisterClassRegisterClassRegisterClass函数的返回为布尔值函数的返回为布尔值函数的返回为布尔值函数的返回为布尔值,注册成功则返回注册成功则返回注册成功则返回注册成功则返回真真真

34、真(2)(2)(2)(2)初始化初始化初始化初始化2010-08-2428iii.创建窗口实例创建窗口实例创建窗口实例创建窗口实例创建一个窗口类的实例由函数创建一个窗口类的实例由函数创建一个窗口类的实例由函数创建一个窗口类的实例由函数CreateWindowCreateWindowCreateWindowCreateWindow()()()()实现实现实现实现函数原型如下函数原型如下函数原型如下函数原型如下:HWND Create WindowHWND Create WindowHWND Create WindowHWND Create Window(LPCTSTR(LPCTSTR(LPCTS

35、TR(LPCTSTR lpszClassNamelpszClassNamelpszClassNamelpszClassName,窗口类名窗口类名窗口类名窗口类名LPCTSTR LPCTSTR LPCTSTR LPCTSTR lpszTitlelpszTitlelpszTitlelpszTitle,窗口标题名窗口标题名窗口标题名窗口标题名DWORD DWORD DWORD DWORD dwStyledwStyledwStyledwStyle,创建窗口的样式创建窗口的样式创建窗口的样式创建窗口的样式intintintint x,y,x,y,x,y,x,y,窗口左上角坐标窗口左上角坐标窗口左上角坐标

36、窗口左上角坐标intintintint nWidth,nHeightnWidth,nHeightnWidth,nHeightnWidth,nHeight,窗口宽度和度高窗口宽度和度高窗口宽度和度高窗口宽度和度高HWND HWND HWND HWND hwndParenthwndParenthwndParenthwndParent,该窗口的父窗口句柄该窗口的父窗口句柄该窗口的父窗口句柄该窗口的父窗口句柄HWENU HWENU HWENU HWENU hMenuhMenuhMenuhMenu,窗口主菜单句柄窗口主菜单句柄窗口主菜单句柄窗口主菜单句柄HINSTANCE HINSTANCE HINST

37、ANCE HINSTANCE hInstancehInstancehInstancehInstance,创建窗口的应用程序当前句柄创建窗口的应用程序当前句柄创建窗口的应用程序当前句柄创建窗口的应用程序当前句柄LPVOID LPVOID LPVOID LPVOID lpParamlpParamlpParamlpParam指向一个传递给窗口的参数值的指针指向一个传递给窗口的参数值的指针指向一个传递给窗口的参数值的指针指向一个传递给窗口的参数值的指针)(2)(2)(2)(2)初始化初始化初始化初始化2010-08-2429iv显示窗口显示窗口显示窗口显示窗口窗口类的显示由窗口类的显示由窗口类的显示由

38、窗口类的显示由ShowWindow和和和和UpdateWindow函数实现函数实现函数实现函数实现。应用程应用程应用程应用程序调用序调用序调用序调用ShowWindow函数在屏幕上显示窗口函数在屏幕上显示窗口函数在屏幕上显示窗口函数在屏幕上显示窗口ShowWindow(hwnd,nCmdshowShowWindow(hwnd,nCmdshowShowWindow(hwnd,nCmdshowShowWindow(hwnd,nCmdshow);/nCmdshow为窗口显示形式标识为窗口显示形式标识为窗口显示形式标识为窗口显示形式标识SW_HIDE隐藏窗口隐藏窗口隐藏窗口隐藏窗口SW_SHOWNOR

39、MAL显示并激活窗口显示并激活窗口显示并激活窗口显示并激活窗口SW_SHOWMINIMIZE显示并最小化窗口显示并最小化窗口显示并最小化窗口显示并最小化窗口SW_SHOWMAXMIZE显示并最大化窗口显示并最大化窗口显示并最大化窗口显示并最大化窗口SW_SHOWNOACTIVE显示但不激活窗口显示但不激活窗口显示但不激活窗口显示但不激活窗口SW_RESTORE恢复窗口的原来位置及尺寸恢复窗口的原来位置及尺寸恢复窗口的原来位置及尺寸恢复窗口的原来位置及尺寸显示窗口后显示窗口后显示窗口后显示窗口后,应用程序调用应用程序调用应用程序调用应用程序调用UpdateWindow更新并绘制用户区更新并绘制用

40、户区更新并绘制用户区更新并绘制用户区,并发出并发出并发出并发出WM_PAINT消息消息消息消息。UpdateWindow(hwndUpdateWindow(hwndUpdateWindow(hwndUpdateWindow(hwnd););););(2)(2)(2)(2)初始化初始化初始化初始化2010-08-2430(3)消息循环消息循环消息循环消息循环消息循环的常见格式如下消息循环的常见格式如下消息循环的常见格式如下消息循环的常见格式如下:MSG MSG MSG MSG MsgMsgMsgMsg;while(while(while(while(GetMessageGetMessageGet

41、MessageGetMessage(&Msg,NULL,0,0)(&Msg,NULL,0,0)(&Msg,NULL,0,0)(&Msg,NULL,0,0)TranslateMessage(&MsgTranslateMessage(&MsgTranslateMessage(&MsgTranslateMessage(&Msg););););DispatchMessage(&MsgDispatchMessage(&MsgDispatchMessage(&MsgDispatchMessage(&Msg););););将消息的虚拟键将消息的虚拟键将消息的虚拟键将消息的虚拟键转换为字符信息转换为字符信息转

42、换为字符信息转换为字符信息将消息传送到将消息传送到将消息传送到将消息传送到指定窗口函数指定窗口函数指定窗口函数指定窗口函数将消息传递给将消息传递给将消息传递给将消息传递给窗口函数的相窗口函数的相窗口函数的相窗口函数的相应过程处理应过程处理应过程处理应过程处理消消消消息息息息队队队队列列列列Windows将将将将产生的消息产生的消息产生的消息产生的消息WinMain函数函数函数函数2010-08-2431WndProc函数由一个或多个函数由一个或多个函数由一个或多个函数由一个或多个switch语句组成语句组成语句组成语句组成。每一每一每一每一条条条条case语句对应一种消息语句对应一种消息语句对

43、应一种消息语句对应一种消息,当应用程序接收到一个消当应用程序接收到一个消当应用程序接收到一个消当应用程序接收到一个消息时息时息时息时,相应的相应的相应的相应的case语句被激活并执行相应的响应程序语句被激活并执行相应的响应程序语句被激活并执行相应的响应程序语句被激活并执行相应的响应程序模块模块模块模块。WndProc包含了对各种可能接收到的消息的处理过程包含了对各种可能接收到的消息的处理过程包含了对各种可能接收到的消息的处理过程包含了对各种可能接收到的消息的处理过程定义定义定义定义了应用程序对接收到的不同消息的响应了应用程序对接收到的不同消息的响应了应用程序对接收到的不同消息的响应了应用程序对

44、接收到的不同消息的响应2.窗口函数窗口函数窗口函数窗口函数WndProc2010-08-2432窗口函数的一般形式如下窗口函数的一般形式如下窗口函数的一般形式如下窗口函数的一般形式如下:LRESULT CALLBACK LRESULT CALLBACK LRESULT CALLBACK LRESULT CALLBACK WndProcWndProcWndProcWndProc(HWND HWND HWND HWND hwndhwndhwndhwnd,UINT UINT UINT UINT messgaemessgaemessgaemessgae,WPARAM WPARAM WPARAM WPA

45、RAM wParam,LPARAMwParam,LPARAMwParam,LPARAMwParam,LPARAM lParamlParamlParamlParam)switch(message)switch(message)switch(message)switch(message)messagemessagemessagemessage为标识的消息为标识的消息为标识的消息为标识的消息 case case case case break;break;break;break;case WM_DESTROY:case WM_DESTROY:case WM_DESTROY:case WM_DESTR

46、OY:PostQuitMessage(0);PostQuitMessage(0);PostQuitMessage(0);PostQuitMessage(0);default:default:default:default:return return return return DefWindowProc(hwnd,message,wParam,lParamDefWindowProc(hwnd,message,wParam,lParamDefWindowProc(hwnd,message,wParam,lParamDefWindowProc(hwnd,message,wParam,lParam)

47、;);););return(0);return(0);return(0);return(0);在消息处理程序段中一般都有对在消息处理程序段中一般都有对在消息处理程序段中一般都有对在消息处理程序段中一般都有对WM_DESTROYWM_DESTROYWM_DESTROYWM_DESTROY的处理的处理的处理的处理,该消息是关闭窗口时发出的该消息是关闭窗口时发出的该消息是关闭窗口时发出的该消息是关闭窗口时发出的。它向应用它向应用它向应用它向应用程序发出程序发出程序发出程序发出WM_QUITWM_QUITWM_QUITWM_QUIT消息消息消息消息,请求退出处理函数请求退出处理函数请求退出处理函数请求

48、退出处理函数:void void void void PostQuitMessage(intPostQuitMessage(intPostQuitMessage(intPostQuitMessage(int nExitCodenExitCodenExitCodenExitCode)/nExitCodenExitCodenExitCodenExitCode为应用程序的退出代码为应用程序的退出代码为应用程序的退出代码为应用程序的退出代码为未定义处理过程的消息提供默认的处理为未定义处理过程的消息提供默认的处理为未定义处理过程的消息提供默认的处理为未定义处理过程的消息提供默认的处理2010-08-24

49、33在标准的在标准的在标准的在标准的C/C+C/C+C/C+C/C+语言中语言中语言中语言中,intintintint、charcharcharchar、floatfloatfloatfloat、doubledoubledoubledouble都是常见都是常见都是常见都是常见的数据类型的数据类型的数据类型的数据类型,而在而在而在而在32323232位位位位WindowsWindowsWindowsWindows的的的的C/C+C/C+C/C+C/C+开发平台中开发平台中开发平台中开发平台中,又添加了又添加了又添加了又添加了一系列新的数据类型一系列新的数据类型一系列新的数据类型一系列新的数据类型

50、。表示指针型的数据类型往往以表示指针型的数据类型往往以表示指针型的数据类型往往以表示指针型的数据类型往往以P P P P或或或或LPLPLPLP作作作作为前缀为前缀为前缀为前缀,而句柄型则总是冠以而句柄型则总是冠以而句柄型则总是冠以而句柄型则总是冠以H H H H。3数据类型数据类型数据类型数据类型类型 定义 BOOL 布尔型(逻辑型)变量(应为 TRUE 或 FALSE)BYTE 字节(8 位)CHAR Windows 字符 COLORREF RGB(红绿蓝)颜色值(32 位)CONST 在执行时其值保持不变的变量 DLGPROC 指向应用程序定义的对话框回调函数的指针 DWORD 双字(3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁