vc_3Windows编程基础 vc入门ppt.ppt
《vc_3Windows编程基础 vc入门ppt.ppt》由会员分享,可在线阅读,更多相关《vc_3Windows编程基础 vc入门ppt.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3讲讲 Windows编程基础编程基础主要内容主要内容FWindows编程基础编程基础F用用MFC创建创建Windows应用程序应用程序F用用API编写编写Windows应用程序应用程序VC vs.C+vcvc是工具,而是工具,而c+c+是程序设计语言是程序设计语言vcvc是基于是基于c+c+的可视化集成开发环境,拥有的可视化集成开发环境,拥有C+C+编译编译器和器和MFCMFC(微软基础类库)等。微软基础类库)等。c+c+增加了面向对象的功能,以事件驱动程序执行增加了面向对象的功能,以事件驱动程序执行 MFCc+编译器编译器C+C资源资源 资源即数据资源即数据,包含在应用程序的,包含在应
2、用程序的.exeexe文件中,文件中,通常资源留在磁盘上,只有当通常资源留在磁盘上,只有当windowswindows需要某一资需要某一资源时,才将其装入内存中。源时,才将其装入内存中。VC VC中有多种资源,分别是加速键、位图、光中有多种资源,分别是加速键、位图、光标、对话框、图标、菜单、串表、工具条和版本标、对话框、图标、菜单、串表、工具条和版本信息。信息。资源在称为资源在称为“资源描述文件资源描述文件”(.”(.rcrc)的的ASCIIASCII码文件中定义。码文件中定义。VCVC对所有类型的资源都提供了资对所有类型的资源都提供了资源编辑器进行可视化编辑。源编辑器进行可视化编辑。VC+V
3、C+代码编译代码编译;资源编译资源编译WindowsWindows头文件头文件源文件源文件资源描述文件资源描述文件.rcrcMFCMFC头文件头文件运行时头文件运行时头文件编译器编译器objobj文件文件Resource.hResource.h资源编译器资源编译器资源文件资源文件RESRES链接程序链接程序可执行文件可执行文件exeexeWindowsWindows运行库和运行库和MFCMFC库库Visual C+应用程序创建过程应用程序创建过程 Windows操作系统是一个多任务、面向对象的图形操作系统。在Windows操作环境中,Windows应用程序采用“基于消息的事件驱动”运行机制,这
4、是它与过去的面向过程的应用程序机制的不同之处。2.1 Windows编程机制编程机制 n事件驱动程序设计是由事件驱动程序设计是由事件的发生事件的发生来控制来控制。Windows编程基础编程基础 windows windows为运行的应用程序创建消息队列,当相应的为运行的应用程序创建消息队列,当相应的事事件发生件发生后,后,windowswindows将其转换为将其转换为消息消息,然后放入消息队列,然后放入消息队列,应用程序不断地从队列中取出消息,然后根据消息发送到应用程序不断地从队列中取出消息,然后根据消息发送到对应的窗口中执行相应的程序代码。对应的窗口中执行相应的程序代码。键盘消息键盘消息事
5、件事件消消息息队队列列提取消息提取消息处理消息处理消息应用程序应用程序其他消息其他消息鼠标消息鼠标消息 多任务多任务执行环境执行环境窗口:窗口:n由由应应用用程程序序创创建建的的一一个个用用于于接接收收用用户户输输入入和和显显示输出示输出的的矩形区域矩形区域。n由非客户区和客户区组成由非客户区和客户区组成n窗窗 口口 是是 应应 用用 程程 序序 与与 用用 户户 交交 互互 的的 界界 面面。是是windowswindows界面显示的基本单位。界面显示的基本单位。非非客客户户区区由由系系统统绘绘制制,包包括括菜菜单单、工工具具栏栏、最大化按钮等。最大化按钮等。客客户户区区由由应应用用程程序序
6、绘绘制制,用用于于输输出出数数据据和和接接受用户的输入。受用户的输入。基本概念基本概念 编写编写windowswindows应用程序应首先创建一个或多个窗口,随后应用程序应首先创建一个或多个窗口,随后程序的运行过程就是窗口内部、窗口和窗口之间、窗口与系程序的运行过程就是窗口内部、窗口和窗口之间、窗口与系统间进行数据处理和数据交换。统间进行数据处理和数据交换。事件:事件:n单击键盘和鼠标、改变窗口大小和移动窗口单击键盘和鼠标、改变窗口大小和移动窗口计算机通知计算机通知WindowsWindows系统已经发生了一个事件,以系统已经发生了一个事件,以及事件的种类、发生的时间和发生的位置(如坐标及事件
7、的种类、发生的时间和发生的位置(如坐标值)。值)。n事件以如下三种方式产生:事件以如下三种方式产生:通过通过输入设备输入设备,如键盘和鼠标,产生硬件,如键盘和鼠标,产生硬件事件。事件。通过通过屏幕上可视的对象屏幕上可视的对象,如菜单、工具栏,如菜单、工具栏按钮、滚动条和对话框上的控件。按钮、滚动条和对话框上的控件。来自来自WindowsWindows内部内部,例如,系统时钟中断。,例如,系统时钟中断。nWindowsWindows操作环境中,无论是系统产生的动作或是操作环境中,无论是系统产生的动作或是用户运行应用程序产生的动作,都称为用户运行应用程序产生的动作,都称为事件产生的事件产生的消息。
8、消息。nWindowsWindows应用程序利用消息与其他的应用程序利用消息与其他的WindowsWindows应用程应用程序及序及WindowsWindows系统进行信息交换。系统进行信息交换。消息:消息:Windows消息是在消息是在Windows.h文件中用宏定义文件中用宏定义的常数。的常数。消息常数名通常为消息常数名通常为WM开头,格式是:开头,格式是:WM_XXX例如,例如,WM_QUIT、WM_CHAR。例如例如:当用户单击鼠标左键时,将发送当用户单击鼠标左键时,将发送 WM_LBUTTONDOWN消息,消息,而双击则发送而双击则发送WM_LBUTTONDBLCLK消息。消息。消息
9、:消息:WindowsWindows消息类型:消息类型:n标标准准WindowsWindows消消息息:以以WM_ _前前缀缀(但但不不包包括括WM_COMMAND)开开始始的的消消息息,包包括括鼠鼠标标消消息息、键键盘盘消消息息和和窗窗口口消消息息,如如WM_MOVE、WM_PAINT等。由窗口类或视图类处理。等。由窗口类或视图类处理。n控控件件通通知知(Control Notification)消消息息:对对控控件件操操作作引引起起的的消消息息,是是控控件件和和子子窗窗口口向向其其父父窗窗口口发发出出的的WM_COMMAND通通知知消消息息。例例如如,当当用用户户修修改改了了编编辑辑控控件
10、件中中的的文文本本后后,编编辑辑控控件件向向其其父父窗窗口口发发送送WM_COMMANDWM_COMMAND通通知知消消息息。由窗口类或视图类处理。由窗口类或视图类处理。n命命令令(Command)消消息息:由由菜菜单单项项、工工具具栏栏按按钮钮、快快捷捷键键等等用用户户界界面面对对象象发发出出的的WM_COMMAND消消息息。命命令令消消息息与与其其它它消消息息不不同同,它它可可被被更更广广泛的的对象如文档、文档模板、应用程序对象、窗口和视图等处理。泛的的对象如文档、文档模板、应用程序对象、窗口和视图等处理。n自自定定义义消消息息:程程序序员员自自己己定定义义并并在在应应用用程程序序中中主主
11、动动发发出出,一一般般用用于于应应用用程程序的某一部分内部处理。序的某一部分内部处理。typedef struct tagMSG HWND hWnd;/检索消息的窗口句柄,如果检索消息的窗口句柄,如果 /为为NULL,则可以检索所有驻留,则可以检索所有驻留 /在消息队列中的消息在消息队列中的消息 UINT message;/消息标识符消息标识符 WPARAM wParam;/消息参数消息参数1(附加信息,(附加信息,32位)位)LPARAM lParam;/消息参数消息参数2(附加信息,(附加信息,32位)位)DWORD time;/消息发送时间消息发送时间 POINT pt;/消息发送时鼠标
12、的屏幕坐标消息发送时鼠标的屏幕坐标 MSG;消息的数据结构消息的数据结构MSGMSG定义如下:定义如下:在在windowswindows程序中程序中,管理消息的方式通常是这样的管理消息的方式通常是这样的:当产生某个消息时当产生某个消息时,该消息进入消息队列该消息进入消息队列,操作系操作系统根据消息提供的统根据消息提供的消息标识符消息标识符决定由哪个应用程序来决定由哪个应用程序来处理处理,该应用程序依照一定的方式查找应用程序中各个该应用程序依照一定的方式查找应用程序中各个类的类的消息映射消息映射(一组宏一组宏,这些宏用来这些宏用来确定某个消息及相确定某个消息及相应的处理程序的对应关系应的处理程序
13、的对应关系),),找到处理程序找到处理程序,然后由处理然后由处理程序执行相应的操作。程序执行相应的操作。v消息响应函数是用于处理特定消息的一些代码。消息响应函数是用于处理特定消息的一些代码。常用消息常用消息nWM_LBUTTONWM_LBUTTONDOWNDOWN:单击鼠标左键时产生的消息单击鼠标左键时产生的消息nWM_LBUTTONWM_LBUTTONUPUP:放开鼠标左键时产生的消息放开鼠标左键时产生的消息nWM_LBUTTONWM_LBUTTONDBLCLKDBLCLK:双击鼠标左键时产生的消息双击鼠标左键时产生的消息nWM_KEYDOWNWM_KEYDOWN:按下一个非系统键时产生的消
14、息,附加按下一个非系统键时产生的消息,附加消息参数消息参数wParamwParam为按下键的虚拟键码,虚拟键码用以为按下键的虚拟键码,虚拟键码用以标识按下或释放的键,标识按下或释放的键,lParamlParam记录按键的重复次数、记录按键的重复次数、扫描码等状态信息扫描码等状态信息nWM_CHARWM_CHAR:按下一个非系统键时产生的消息,附加信息按下一个非系统键时产生的消息,附加信息参数参数wParamwParam为按下键为按下键ASCIIASCII码,码,lParamlParam的意思同上的意思同上常用消息常用消息nWM_CREATEWM_CREATE:创建窗口时产生的消息创建窗口时产生
15、的消息nWM_CLOSEWM_CLOSE:关闭窗口时产生的消息关闭窗口时产生的消息nWM_DESTROYWM_DESTROY:消除窗口时发出的消息消除窗口时发出的消息nWM_QUITWM_QUIT:退出应用程序时发出的消息退出应用程序时发出的消息nWM_PAITWM_PAIT:Windows:Windows系统需要重绘时产生的消系统需要重绘时产生的消息息Windows编程中的常用基本数据结构编程中的常用基本数据结构数据结构数据结构描述描述MSG应用程序消息的结构应用程序消息的结构WNDCLASS定义窗口类定义窗口类RECT定义矩形定义矩形POINT定义点定义点新的数据类型新的数据类型n最初是为
16、了便于将最初是为了便于将windowswindows程序从原来的程序从原来的1616位位系统上移植到基于系统上移植到基于3232位的操作系统上。位的操作系统上。n有些新的数据类型只是为了方便起见而使用的有些新的数据类型只是为了方便起见而使用的一个缩写。一个缩写。egeg:UINT-UINT-unsingedunsinged intint;PSTR-Point to StringPSTR-Point to Stringn有些数据类型含义不是很明显,常使初学者感有些数据类型含义不是很明显,常使初学者感到困惑不解。到困惑不解。nMSDN/Platform SDK/Win32 MSDN/Platfor
17、m SDK/Win32 API/Reference/Data TypesAPI/Reference/Data Typesnc-char/WCHAR/TCHARnby-BYTE(无符号字符无符号字符);nn-short;i-int;l-long;b-boolnw-WORD(无符号无符号short);ndw-DWORD(无符号长整型无符号长整型);ns-string;sz-string ended winth zeronh-handle;p-pointer;fn-functionncb-count of bytesnlpfn-long pointer to function(指向函数(指向函数的长
18、指针)的长指针)匈牙利命名法匈牙利命名法windows常用变量前缀常用变量前缀句柄句柄 n句柄(句柄(HandleHandle)就是就是WindowsWindows使用的一种无重复的使用的一种无重复的整数。主要用来标识应用程序中不同的对象和同整数。主要用来标识应用程序中不同的对象和同类对象中不同的实例。通过句柄可以获得相应的类对象中不同的实例。通过句柄可以获得相应的对象信息。对象信息。n句柄常作为句柄常作为WindowsWindows消息和消息和APIAPI函数的参数,在采函数的参数,在采用用APIAPI方法编写方法编写WindowsWindows应用程序时要经常使用句应用程序时要经常使用句柄
19、。而采用柄。而采用MFCMFC方法编写方法编写WindowsWindows应用程序时,由应用程序时,由于对应的于对应的MFCMFC类已对句柄进行了封装,大多数情况类已对句柄进行了封装,大多数情况下不再需要访问句柄。下不再需要访问句柄。句柄:句柄:类型类型含义含义类型类型含义含义HANDLE通用对象句柄通用对象句柄HCURSOR鼠标光标句柄鼠标光标句柄HWND窗口对象句柄窗口对象句柄HBRUSH刷子句柄刷子句柄HDC设备描述表句柄设备描述表句柄HPEN画笔句柄画笔句柄HMENU菜单句柄菜单句柄HFONT字体对象句柄字体对象句柄HICON图标句柄图标句柄HINSTANCE应用程序的实应用程序的实例
20、句柄例句柄nAPIAPI(Application Programming Interface)(Application Programming Interface)应用程序接口应用程序接口:是:是WindowsWindows操作系统与应用程序之操作系统与应用程序之间的标准接口,它提供了上千个标准函数、宏和数间的标准接口,它提供了上千个标准函数、宏和数据结构的定义。据结构的定义。大多数大多数APIAPI函数定义在函数定义在Windows.hWindows.h的文件中,也的文件中,也可以从可以从WindowsWindows平台软件开发包平台软件开发包(SDK)(SDK)中得到它。中得到它。nWin
21、dows Windows APIAPI函函数数定定义义在在一一些些DLLDLL动动态态链链接接库库中中,其其 中中 最最 主主 要要 的的 DLLDLL是是 User32.dllUser32.dll、Gdi32.dllGdi32.dll和和Kernel32.dllKernel32.dll三个库文件。三个库文件。API编程编程n一一个个由由APIAPI函函数数构构造造的的WindowsWindows程程序序的的功功能能由由三三个个部部分组成:分组成:入口函数、窗口函数和入口函数、窗口函数和WindowsWindows系统。系统。n每每一一个个程程序序都都有有一一个个主主函函数数,WinMainW
22、inMain()()函函数数就就是是WindowsWindows程程序序的的入入口口主主函函数数。完完成成一一系系列列的的定定义义和和初始化工作,并产生消息循环。初始化工作,并产生消息循环。nWindowsWindows程程序序以以窗窗口口的的形形式式存存在在,在在不不同同窗窗口口之之间间传传递递消消息息是是WindowsWindows和和应应用用程程序序进进行行交交流流的的主主要要形形式式。程程序序具具体体功功能能由由不不同同的的窗窗口口函函数数实实现现。窗窗口口函函数是应用程序处理接收到的消息的函数。数是应用程序处理接收到的消息的函数。Win32程序的基本结构程序的基本结构Win32源程序
23、的组成源程序的组成nWin32程序由入口函数程序由入口函数WinMain()和消息处理函和消息处理函数数WndProc()组成。组成。1.WinMain函数函数功能:功能:n注册窗口类,建立窗口及执行其他必要初始化工作。注册窗口类,建立窗口及执行其他必要初始化工作。n进入消息循环,根据从消息队列中接收的消息,调用相进入消息循环,根据从消息队列中接收的消息,调用相应的处理过程。应的处理过程。n当消息循环检索到当消息循环检索到WM_QUITWM_QUIT消息时,终止程序的执行消息时,终止程序的执行。WinMain函数的组成函数的组成Winmain函数函数函数说明函数说明初始化初始化消息循环消息循环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vc_3Windows编程基础 vc入门ppt vc_3Windows 编程 基础 vc 入门 ppt
限制150内