03_vc_api 可视化编程 windows编程.ppt
《03_vc_api 可视化编程 windows编程.ppt》由会员分享,可在线阅读,更多相关《03_vc_api 可视化编程 windows编程.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2讲讲 Windows 应用程序基础应用程序基础1程序调试工具程序调试工具包括源程序语包括源程序语法检查、可执法检查、可执行程序修改和行程序修改和运行监视等运行监视等应用程序应用程序HelpHelp和和SetupSetup开发开发工具包工具包系统函数库和系统函数库和系统函数开发系统函数开发工具工具资源管理器资源管理器包括图形化窗包括图形化窗口及组成元素口及组成元素的多种对象的的多种对象的编辑器编辑器可选择并构成具体可选择并构成具体语句或源程序结构语句或源程序结构的例程库及的例程库及Help源程序编辑源程序编辑器和编译器器和编译器可视化开发可视化开发系统集成了一系系统集成了一系列系统可用资源
2、列系统可用资源和开发工具和开发工具一、一、Windows编程基础编程基础2采用交互式方法时,可视化开发平台给出了许多选用的采用交互式方法时,可视化开发平台给出了许多选用的对象对象,程序员,程序员可选择所需可选择所需对象对象并确定其属性,由此搭建起应用程序的并确定其属性,由此搭建起应用程序的“大框架大框架”,并可根据需要进一步编写必要的细节代码段,最后构成完整的并可根据需要进一步编写必要的细节代码段,最后构成完整的应用程应用程序序Windows的的程序设计语言程序设计语言VCVBVJ都是都是“面向面向对象对象”的程序设计语言的程序设计语言对象对象是是Windows的规范部件的规范部件窗口窗口菜单
3、菜单按钮按钮对话框对话框程序模块程序模块编写编写Windows程序相当一部分工程序相当一部分工作是在创建作是在创建对象对象和和为为对象对象属性赋值属性赋值对象对象特征:具有规范形态和操作模式特征:具有规范形态和操作模式编程方法编程方法传统编写法传统编写法-API交互式方法交互式方法-MFC3APIAPI函数函数的功能的功能为应用程序为应用程序提提供供Windows系系统统特殊函数特殊函数及及数据结构数据结构Win应用程序应用程序可以利用标准可以利用标准大量大量API函数函数调用系统功能调用系统功能是是Win系统系统与与Win应用程序应用程序间的间的标准程序标准程序接口接口窗口管理函数窗口管理函
4、数实现窗口的创实现窗口的创建、移动和修建、移动和修改功能改功能系统服务函数系统服务函数:实现与操作系实现与操作系统有关的多种统有关的多种功能功能图形设备图形设备(GDI)函数函数:实现与:实现与设备无关的图设备无关的图形操作功能形操作功能4 利用利用WindowsWindows APIAPI函数编写函数编写WindowsWindows应用程序应用程序必必须首先了解以下内容:须首先了解以下内容:(1)(1)窗口的概念窗口的概念(2)(2)事件驱动的概念事件驱动的概念(3)(3)句柄句柄(4)(4)消息消息5(1)窗口窗口一个应用程序的窗口一般包含下列成分:一个应用程序的窗口一般包含下列成分:窗口
5、边界窗口边界工作区工作区控制菜单框控制菜单框下拉菜单下拉菜单水平滚动条水平滚动条垂直滚动条垂直滚动条最大化按钮最大化按钮最小化按钮最小化按钮标题栏标题栏6编写一个编写一个Windows应用程序应用程序首先应创建一个或多个窗口,随后应用首先应创建一个或多个窗口,随后应用程序的运行过程即是程序的运行过程即是窗口内部窗口内部、窗口与窗口窗口与窗口之间之间、窗口与系统窗口与系统之间之间进行进行数据处理与数据交换数据处理与数据交换的过程。的过程。应用程应用程序与用序与用户之间户之间交互的交互的接口环接口环境境系统管理系统管理应用程序应用程序的基本单位的基本单位Win应用程序应用程序基本的操作单元基本的操
6、作单元7Windows程序设计是针对程序设计是针对事件事件或或消息消息的处理进行的处理进行 消息消息是描述事是描述事件发生的信息件发生的信息(如按下鼠标或键盘如按下鼠标或键盘)事件驱动事件驱动编程方法对于编写编程方法对于编写交互式程序交互式程序很有用处,它避免很有用处,它避免了死板的操作模式了死板的操作模式Windows程序程序的执行顺序取决于事件发生的顺序,程序的的执行顺序取决于事件发生的顺序,程序的执行顺序是由顺序产生的执行顺序是由顺序产生的消息消息驱动的,但是驱动的,但是消息消息的产生往的产生往往并不要求有次序之分。往并不要求有次序之分。(2)事件驱动事件驱动 8常用句柄类型及其说明常用
7、句柄类型及其说明句柄句柄是一个是一个4字节长的数值,用于标识应用字节长的数值,用于标识应用程序中不同的程序中不同的对象对象和和同类对象中不同的实同类对象中不同的实例例窗口窗口按钮按钮图标图标滚动条滚动条输出设备输出设备控制控制文件文件(3)句柄句柄应用程序通过应用程序通过句柄句柄访问相应访问相应的对象信息的对象信息HWNDHWND窗口句柄窗口句柄HDCHDC设备环境句柄设备环境句柄HBITMAPHBITMAP位图句柄位图句柄HCURSORHCURSOR光标句柄光标句柄HICONHICON图标句柄图标句柄HFONTHFONT字体句柄字体句柄HMENUHMENU菜单句柄菜单句柄HPENHPEN画笔
8、句柄画笔句柄HFILEHFILE文件句柄文件句柄HBRUSHHBRUSH画刷句柄画刷句柄HINSTANCEHINSTANCE 当前实例句柄当前实例句柄9 Windows应用程序应用程序利用利用Windows消息消息(Message)与应用程序及系统进行信息交换。与应用程序及系统进行信息交换。typedeftypedef struct tagMSG struct tagMSG HWND hwnd;HWND hwnd;窗口句柄,为窗口句柄,为null,则可检索所有驻留在消息队列中的消息则可检索所有驻留在消息队列中的消息 UINT message;UINT message;消息值,由消息值,由Win
9、dows.h头文件中的宏定义来标识头文件中的宏定义来标识 WPARAM wParam;WPARAM wParam;包含有关消息的附加信息包含有关消息的附加信息,不同消息其值有所不同不同消息其值有所不同 LPARAM lParam;LPARAM lParam;DWORD time;DWORD time;指定消息送至队列的时间指定消息送至队列的时间 POINT pt;POINT pt;指定消息发送时屏幕光标的位置,指定消息发送时屏幕光标的位置,其数据类型其数据类型POINT也是一个结构体也是一个结构体 MSG;MSG;消息号:由事先定义好的消息名标识消息号:由事先定义好的消息名标识字参数字参数(w
10、Param):用于提供消息的用于提供消息的附加附加信息信息长字参数长字参数(lParam):用于提供消息的用于提供消息的附附加信息加信息消消息息附加信息附加信息与具体与具体消息号的值有关,消息号的值有关,在在Win中消息用中消息用结构体结构体MSG表示表示typedeftypedef struct struct tagPOINT tagPOINT LONG xLONG x;LONG y;LONG y;POINTPOINT;(4)消息消息10(4)消息消息 VC中存在几种系统定义的消息分类,不同的前缀符号经常用于中存在几种系统定义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类,系统定
11、义的消息宏前缀如下:消息宏识别消息附属的分类,系统定义的消息宏前缀如下:BM表示按钮控制消息表示按钮控制消息CB表示组合框控制消息表示组合框控制消息DM表示默认下压式按钮控制消息表示默认下压式按钮控制消息EM表示编辑控制消息表示编辑控制消息LB表示列表框控制消息表示列表框控制消息SBM表示滚动条控制消息表示滚动条控制消息WM表示窗口消息表示窗口消息窗口管理消息窗口管理消息初始化消息初始化消息输入消息输入消息系统消息系统消息剪贴板消息剪贴板消息控制处理消息控制处理消息控制通知消息控制通知消息滚动条通知消息滚动条通知消息非用户区消息非用户区消息MDI消息消息DDE消息消息应用程序自定义的消息应用程
12、序自定义的消息Windows编编程程常用消常用消息息11二、二、Windows应用程序常用消息应用程序常用消息1.WM_LBUTTONDOWN:产生单击鼠标左键的消息产生单击鼠标左键的消息此外,相似的消息还有:此外,相似的消息还有:lWM_LBUTTONUP:放开鼠标左键时产生;放开鼠标左键时产生;lWM_RBUTTONDOWN:单击鼠标右键时产生;单击鼠标右键时产生;lWM_RBUTTONUP:放开鼠标右键时产生;放开鼠标右键时产生;lWM_LBUTTONDBLCLK:双击鼠标左键时产生;双击鼠标左键时产生;lWM_RBUTTONDBLCLK:双击鼠标右键时产生。双击鼠标右键时产生。lPar
13、am高字节高字节包含当前光标的包含当前光标的Y坐标坐标值值低字节低字节包含当前光标的包含当前光标的X坐标坐标值值wParam包含一整包含一整数值以标识鼠标键数值以标识鼠标键的的按下状态按下状态MK_LBUTTON按下鼠标左键按下鼠标左键MK_MBUTTON按下鼠标中键按下鼠标中键MK_RBUTTON按下鼠标右键按下鼠标右键122.WM_KEYDOWN:按下一个按下一个非系统键非系统键时产生的消息时产生的消息 系统键系统键是指实现系统操作的组合键,例如是指实现系统操作的组合键,例如Alt与某个功与某个功能键的组合以实现系统菜单操作等。能键的组合以实现系统菜单操作等。3.WM_ CHAR:按下一个
14、按下一个非系统键非系统键时产生的消息时产生的消息wParam 为为按键的按键的ASCII码码lParam 与与WM_KEYDOWN的相同的相同wParam:按下键的按下键的虚拟键码虚拟键码,用以标识按下或释放的键,用以标识按下或释放的键lParam:记录了按键的重复次数、扫描码、转移代码、先前键的状态记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息。等信息。相似的消息还有相似的消息还有WM_KEYUP,在放开非系统键时产生在放开非系统键时产生134.WM_CREATE:由由CreateWindow函数发出的消息函数发出的消息wParam:未用未用lParam:包含一个指向包含一个指向
15、CREATESTRUCT数据结构数据结构的指针的指针5.WM_CLOSE:关闭窗口时产生的消息关闭窗口时产生的消息wParam和和lParam均未用。均未用。6.WM_DESTROY:由由DestroyWiodow函数发出的消息函数发出的消息wParam和和lParam均未用。均未用。147.WM_QUIT:由由PostQuitMessage函数发出的消息函数发出的消息退出应用程序时发出的消息退出应用程序时发出的消息wParam:含退出代码含退出代码,标识程序退出运行时的有关信息标识程序退出运行时的有关信息1Param:未用未用8.WM_PAINT用户区移动或显示用户区移动或显示用户窗口改变大
16、小用户窗口改变大小程序通过滚动条滚动窗口程序通过滚动条滚动窗口下拉式菜单关闭并需要恢复被覆盖的部分下拉式菜单关闭并需要恢复被覆盖的部分Windows清除对话框等对象,并需要恢复被覆盖的部分清除对话框等对象,并需要恢复被覆盖的部分均产生均产生WM_PAINTWM_PAINT消息消息15三、三、Windows中的事件驱动程序设计中的事件驱动程序设计启动启动输入姓名输入姓名输入第一次测试成绩输入第一次测试成绩输入第二次测试成绩输入第二次测试成绩输入第三次测试成绩输入第三次测试成绩计算平均成绩计算平均成绩结束结束过程驱动过程驱动方法计算平均成绩方法计算平均成绩启动启动消息处理消息处理结束结束输入姓名输
17、入姓名输入第一次成绩输入第一次成绩输入第二次成绩输入第二次成绩输入第三次成绩输入第三次成绩计算平均成绩计算平均成绩事件驱动事件驱动方法计算平均成绩方法计算平均成绩16四、四、Windows应用程序组成及编程步骤应用程序组成及编程步骤 1.应用程序的组成应用程序的组成一个完整的一个完整的Windows应用程序应用程序通常由通常由五种五种类型类型的文件组成的文件组成。1.1.C C语言源程序文件语言源程序文件2.2.头文件头文件3.3.模块定义文件模块定义文件4.4.资源描述文件资源描述文件5.5.项目文件项目文件172.源程序组成结构源程序组成结构入口函数入口函数WinMain窗口函数窗口函数W
18、ndProcWndProcWindows应用程序应用程序构成基构成基本框架本框架包含各种包含各种数据类型、数据类型、数据结构数据结构与函数等与函数等WinMain和和WinProc是是Windows应用程序的主体应用程序的主体18(1)WinMain函数函数三个基本的组成部分三个基本的组成部分:函数说明函数说明、初始化初始化和和消息循环消息循环功能功能注册窗口类,建立窗口及执行必要的初始化注册窗口类,建立窗口及执行必要的初始化进入消息循环,据接受的消息调用相应的处理过程进入消息循环,据接受的消息调用相应的处理过程当消息循环检索到当消息循环检索到WM_QUIT时终止程序运行时终止程序运行WinM
19、ain函数函数WinMain函数说明函数说明WinMain函数的说明如下:函数的说明如下:intint WINAPI WINAPI WinMain WinMain(HINSTANCE HINSTANCE hThisInsthThisInst,应用程序当前实例句柄应用程序当前实例句柄 HINSTANCe hPrevInstHINSTANCe hPrevInst,应用程序其他实例句柄应用程序其他实例句柄 LPSTR LPSTR lpszCmdLinelpszCmdLine,指向程序命令行参数的指针指向程序命令行参数的指针 Int nCmdShowInt nCmdShow应用程序开始执行时窗口显示方
20、式的整数值标识应用程序开始执行时窗口显示方式的整数值标识)注意!注意!Win是多任务管理的,同一应是多任务管理的,同一应用程序的多个窗口可能会同时存用程序的多个窗口可能会同时存,Win系统对每个窗口的执行称为一个实例系统对每个窗口的执行称为一个实例,并用一个实例句柄来唯一标识并用一个实例句柄来唯一标识19(2)初始化初始化(a)窗口类定义窗口类定义 通过给窗口类数据结构通过给窗口类数据结构WNDCLASS赋值完成赋值完成,该数据结构中该数据结构中包含窗口类的各种属性。窗口类定义常用以下函数:包含窗口类的各种属性。窗口类定义常用以下函数:LoadIcon的作用是在应用程序中加载一个窗口图标。其原
21、型为:的作用是在应用程序中加载一个窗口图标。其原型为:HICON HICON LoadIconLoadIcon(HINSTANCE(HINSTANCE hInstancehInstance,LPCTSTR,LPCTSTR lpIconNamelpIconName)图标资源名或系统预定义图标标识名图标资源名或系统预定义图标标识名图标资源所在的模块句柄,图标资源所在的模块句柄,NULLNULL则使用系统预定义图标则使用系统预定义图标初初始始化化显示窗口显示窗口创建窗口实例创建窗口实例窗口类的注册:窗口类必须先注册后使用窗口类的注册:窗口类必须先注册后使用窗口类的定义:定义窗口的形式与功能窗口类的定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03_vc_api 可视化编程 windows编程 03 _vc_api 可视化 编程 windows
限制150内