ImageVerifierCode 换一换
格式:PPT , 页数:21 ,大小:138.50KB ,
资源ID:8436994      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8436994.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Windows编程基础2.ppt)为本站会员(gnk289057)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Windows编程基础2.ppt

1、第四章 应用程序基本结构与运行方式,4.1 窗口一、窗口的在应用程序中的意义1、窗口是Windows应用程序的用户图形交互界面。2、应用程序基本的组成框架。 3、Windows操作系统基本的管理单位二、以窗口为主体的用户图形界面具有以下特点:1、形式规范2、交互方式多样3、易于操作,三、窗口的外观与组成,4.2 Windows扩充的不同于C语言的数据类型Word 16位无符号整数。Dword 32位无符号整数。Long 32位整数。Handle 16位无符号整数, 常用于建立某个对象的句柄,使用此句柄相当于引用该对象。HWnd 16位无符号整数,常用于表示打开的窗口句柄,使该句柄相当于引用该对

2、象。Bool 16位布尔值Byte 8位无符号整数Farproc 32位指向函数指针Dlgproc 32位指向对话框过程的函数指针Lpstr 32位指向字符串数据的指针Unit 16位无符号整数Lparam 32位整数,常用于Windows的参数,Wparam 16位整数,常用于Windows的函数参数Atom 作为一个原子的16位句柄Colorref 用作颜色值的32位数Hfile 用作文件句柄的16位数句柄: 1、在标准C中,句柄可用于文件的输入和输出。 如:int fHandle;fHandle = open(“filename”,”r”);if( fHandle )read(fHand

3、le,block,bytesToRead);close(fHandle); 2、在Windows中,句柄是Windows用于标识应用程序中建立的或使用的对象的唯一整数。,实例:在Windows下,不仅可以同时运行多个程序,还可以同时运 行同一应用程序的多份拷贝,每份拷贝叫做一个实例,由不同的 实例句柄来标识。一个实例句柄是应用程序的一个单独可以执行的副本,是唯一 标识此实例的整数。,4.2 消息,一、消息的组成 Windows消息由消息号和参数两部分组成: 1、消息号。 Windows操作系统通过32为整数标识一条Windows消息,称为消息号。具有以下三个特点: 唯一性:只对于Windows

4、操作系统中的每一条消息存在且只存在一个消息号与之相对应。 直观性:消息号在形式上表现为消息名,消息名通常直观地说明了消息的产生方式和类型,比如WM_LBUTTONDOWN直观地反映了鼠标左键按下时所产生的消息。 可自定义:Windows系统定义了一系列的消息号和消息名,程序员可以使用这些消息号,也可以使用自己定义的消息。,自定义消息的形式如下: #define 消息名 消息号 为了不与现有的Windows消息相冲突,在消息号的定义通常采用如下的形式:WM_USER + n其中WM_USER是Windows操作系统定义的用户的消息起始值,程序员必须在该起始值之后来选取消息号。 如: #defin

5、e MESSAGE_1 WM_USER + 1,2、参数。Windows的消息具有以下两个参数: 字参数(wParam) 长参数(lParam) 字参数和长参数都是32为整数,用于提供消息的附带信息,是消息传递过程中参数的载体。 二、消息的分类 1、 输入消息:包括键盘和鼠标的输入。这类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由应用程序来处理该消息。 2、控制消息:用来与Windows的控制对象进行双向通信。比如:列表框、按钮等。,3、系统消息: 对程序中的某些事件或系统时钟中断作出响应。一些系统消息要通过Windows系统消息队列(如DDE,动态数据交换

6、消息),有的则不通过系统消息队列而直接送入应用程序的消息队列中,如创建窗口消息。4、用户消息:程序员自己定义并在应用程序中主动发出的消息,一般由应用程序的某一部分内部处理。 三、常用消息举例 1、WM_LBUTTONDOWN 产生:当鼠标左键被按下时。 参数:wParam:整数值,用来说明左键按下时,键盘上的Shift和Ctrl是否同时被按下。lParam:低字节包含消息产生时光标的x坐标值,高字节包含y坐标值。 与此类似的消息: WM_LBUTTONUP WM_RBUTTONDOWN WM_RBUTTONUP WM_LBUTTONBLCLK WM_RBUTTONBLCLK,2、WM_KEYD

7、OWN 产生:在键盘上按下一个非系统键时。 参数:wParam:按下键的虚拟键码,(其用来标识按下的是那个键),在Windows.h中有定义。 lParam:长参数,其中记录了按键的重复次数、扫描码、转移代码、先前键的状态信息。 与此类似的还有: WM_KEYUP 3、WM_CHAR 产生:在键盘上单击一个非系统键时产生。 参数:wParam:按下键的ASCII码。 lParam:长参数,其中记录了按键的重复次数、扫描码、转移代码、先前键的状态信息。 4、WM_CREATE 产生:由CreateWindow函数发出 参数:wParam未用,lParam包含了一个指向CREATESTRUCT数据

8、结构的指针。,5、WM_CLOSE 产生:关闭当前窗口时产生。 参数:未用。 6、WM_DESTROY 产生:消除窗口时由DestroyWindow函数发出。 参数:未用。 7、WM_QUIT 产生:退出应用程序时由PostQuitMessage函数发出。 参数:wParam含有退出代码,用以标识应用程序退出运行时的有关信息。,4.3 事件驱动模式,一、Windows应用程序的执行过程,二、说明1、程序的执行顺序取决于事件发生的顺序。2、事件驱动应用程序中的多个处理模块通过消息发送和接收交换数据,并不需要确定模块之间的执行顺序和响应先后问题,只和事件的产生与相应消息的发送先后有关。3、基于事件

9、驱动的应用程序能够为用户提供方便灵活的操作方式。4、Windows操作系统所具有的多线程、用户图形化界面特点客观上要求Windows应用程序采用事件驱动的方式进行。,4.4 Windows编程内部分析例1: int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) MSG msg;char szAppName=“Welcome to windows!”;HWND hWnd;WNDCLASS wndClass;if( !hPreInst)wndClass.style

10、 = CS_HREDRAW ;wndClass.lpfnWndProc = (WNDPROC)WndProc;wndClass.cbClsExtra = 0;wndClass.cbWndExtra = 0;,wndClass.hInstance = hInstance;wndClass.hIcon=LoadIcon(hInstance, IDI_APPLICATION);wndClass.hCursor= LoadCursor(NULL, IDC_ARROW);wndClass.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);wndClass.lpszMenuN

11、ame = NULL;wndClass.lpszClassName = szAppName;if(ResisterClass(,hWnd = CreateWindow(szAppName,szAppName,WS_OVERLAPPEDWINDOW,100,100,300,300NULL,NULL,hInstance,NULL);if (!hWnd)return FALSE;ShowWindow(hWnd, nCmdShow);while (GetMessage( ,LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,

12、LPARAM lParam) char *str=“welcome “;switch (message) case WM_PAINT:HDC hdc; PAINTSTRUCT Pt;hdc = BeginPaint(hWnd, ,说明: 一、程序的入口 int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) 二、窗口的注册 Typedef struct _WNDCLASSUNIT style;WNDPROC lpfnWndProc;int cbClsExtra

13、;int cbWndExtra ;HANDLE hInstance ;HICON hIcon;HCURSOR hCursor;HBRUSH hbrBackground;LPCTSTR lpszMenuName;LPCTSTR lpszClassName; WNDCLASS;,三、创建一个窗口HWND CreateWindow(HWND lpszClassname, /窗口类名LPCTSTR lpszWindowName, / 窗口标题LPCTSTR dwStyle, / 窗口风格int nx,ny,nWidth,nHeight, /位置及大小HWND hwndParent, /父窗口句柄HMENU hmenu, /窗口菜单句柄HANDLE hinst, / 当前窗口句柄LPVOID lpvParam); / 所用参数 四、显示一个窗口ShowWindow() 五、建立消息循环 while (GetMessage(,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报