欢迎来到天天文库
浏览记录
ID:37798012
大小:796.59 KB
页数:42页
时间:2019-05-31
《1.Windows程序的运行机制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Windows编程基础东软人才实训中心Copyright2010ByNeusoftGroup.Allrightsreserved1第一章Windows程序的运行机制本课程旨在向学员介绍:1)掌握Windows应用程序开发时间:学时6的基本概念教学方法:讲授+课上2)理解事件驱动机制练习+课下作业3)掌握如何使用WindowsAPI函数进行Windows应用程序的开发2应用程序基本类型•Windows支持两种类型的应用程序。–CUI(基于控制台用户界面)的应用程序。–GUI(基于图形用户界面)的应用程序。3GUI应用程序的基本类型•单文档(SDI:SingleDocumentInterface
2、)–每次只能打开一个文档框架窗口•多文档(MDI:MultipleDocumentInterface)–每次可打开多个文档框架窗口•基于对话框(Dialog)4GUI应用程序的组成和开发•组成:Windows下,从程序员角度–GUI应用程序=窗口+消息+其他•面向过程角度:其他包括数据、算法、资源等•面向对象角度:其他包括对象、资源等•GUI应用程序开发内容包括:–创建窗口–处理消息–根据功能要求完成其他5窗口(Window)•什么是窗口–从用户角度,只看到一个窗口–从程序员角度,每个按钮也都是一个窗口,窗口是一种静态资源,是基本的界面单位,窗口由操作系统管理并通过句柄来唯一标识。句柄:Wi
3、ndows负责分配和管理资源,通过句柄来标识这些资源6窗口(Window)•如何创建和使用窗口–通过Win32API来创建窗口•设计窗口类(定义并填充WNDCLASS结构体变量)•注册窗口类(RegisterClass)•创建窗口(CreateWindow)–借助于Win32API来显示和控制窗口•显示窗口(ShowWindow)•更新窗口(UpdateWindow)API(ApplicationProgrammingInterface),代表函数、数据结构和消息。7消息(Message)•什么是消息–按照来源,Windows消息分为3类:•由硬件装置产生的消息:如单击鼠标、压下按键•由操作
4、系统产生的消息:关闭程序、改变或移动窗口•一个窗口发给另一个窗口的消息–Windows通过一个结构体来描述消息通过messagetypedefstructtagMSG{来标识消息HWNDhwnd;//接收消息的窗口的句柄UINTmessage;//消息标识WPARAMwParam;//包含有关消息的附加信息LPARAMlParam;//附加信息DWORDtime;//指定消息送至队列的时间UINT:typedefunsignedintUINTDWORD:typedefunsignedlongDWORDPOINTpt;//指定消息发送时鼠标的位置WPARAM:typedefUINTWPARAM
5、;}MSG;LPARAM:typedefLONGLPARAM8消息(Message)•消息示例–移动鼠标时,窗口会收到WM_MOUSEMOVE消息typedefstructtagMSG{HWNDhwnd;//鼠标所在窗口的句柄UINTmessage;//WM_MOUSEMOVEWPARAMwParam;//鼠标状态(哪个键被按下)LPARAMlParam;//鼠标所在点的坐标DWORDtime;POINTpt;}MSG;//WINUSER.H#defineWM_MOUSEMOVE0x02009消息(Message)•常用消息消息发送条件WM_CHAR从键盘输入字符WM_COMMAND用户选择
6、菜单内的某项,或是控件给其父类发送一个通知WM_CREATE生成窗口(CreateWindow)WM_DESTROY撤销窗口(DestroyWindow)WM_LBUTTONDOWN按下鼠标左键WM_LBUTTONUP释放鼠标左键WM_MOUSEMOVE移动鼠标指针WM_PAINT窗口需要重新绘制WM_QUIT应用程序将结束(PostQuitMessage)WM_SIZE窗口尺寸被调整10消息(Message)•如何处理消息–建立消息循环–构建消息响应函数–将消息响应函数跟窗口进行绑定11窗口和消息的关系•消息是程序得以执行的动力,程序的生命靠它来推动。•窗口是程序的“脸蛋”,程序的“喜怒哀
7、乐”通过它来展现。•消息和窗口相辅相成,缺一不可。•注:以上是针对GUI程序的观点。12构建一个完整的应用程序•程序入口、头文件及数据类型–WinMain(C程序入口一般是main)•创建和使用窗口–通过Win32API来创建窗口•①设计窗口类(定义并填充WNDCLASS结构体变量)•②注册窗口类(RegisterClass)•③创建窗口(CreateWindow)–借助于Win32API来显示和控制窗口•④
此文档下载收益归作者所有