c++ windows程序设计基础

上传人:fe****16 文档编号:118722544 上传时间:2019-12-23 格式:PPT 页数:90 大小:1.34MB
返回 下载 相关 举报
c++ windows程序设计基础_第1页
第1页 / 共90页
c++ windows程序设计基础_第2页
第2页 / 共90页
c++ windows程序设计基础_第3页
第3页 / 共90页
c++ windows程序设计基础_第4页
第4页 / 共90页
c++ windows程序设计基础_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《c++ windows程序设计基础》由会员分享,可在线阅读,更多相关《c++ windows程序设计基础(90页珍藏版)》请在金锄头文库上搜索。

1、第10章 C+ Windows程序设计基础 Windows系统是一个基于视窗的消息驱动系统,即使功能 大异的Windows程序都有比较规范统一的程序界面,如窗 口、菜单、工具条、对话框等。 Windows程序的设计其实 比较规范,但若不了解Windows程序的基本结构,程序调 度的基本方法(即消息驱动的基本原理),以及每个程序 都会用到的基本数据结构,也很难编写出有用的Windows 程序来。 之所以在本章介绍API程序,就是基于上述考虑而设计的 ,尽管API程序设计在实际编程过程中已越来越少用了, 但它却是理解Windows程序设计基本原理的最佳捷径,因 为所有Windows程序的结构和执行

2、过程最终大同于API程 序。在此基础上学习MFC及其它在Windows程序设计语言 如JAVA,都是大有帮助的! “磨刀不误砍柴功!”,不是吗? 10.1 Windows程序设计基础 Windows系统的特点 标准的用户界面 多任务 设备独立性 动态链接 强大的内存管理 10.1 Windows程序设计基础 2. 基本术语 窗口(Window)由句柄唯一标识 对话框(Dialog)人机交互 图标(Icon)代表某一项操作或程序的图 符 位图(Bitmap)用位模式形成的图像 菜单(Menu)命令 工具栏(ToolBar)常用的菜单项 状态栏(StateBar)操作状态或操作提示 10.1.1

3、窗口 窗口是Windows程序的基本单元,Windows程序的 运行过程就是窗口内部、窗口之间及窗口与用户 之间的信息交换过程。窗口通常包括菜单、工具 条、滚动条、状态栏、命令按钮、对话框等元素 。 10.1.2 事件驱动和消息响应 1. 事件 事件是指人们应用计算机的过程中发生的操作, 如按下键盘上的某个按键、移动鼠标、单击鼠标 左键、移动窗口及选择程序菜单等操作都是事件 。 2、事件驱动 每发生一个事件,就会产生一个与之对应的特定 消息,该消息会被Windows系统捕获,然后将通过 此消息调用执行与之对应的程序代码,实现相应 的程序功能。 因为从事件发生到相应程序代码被调用执行都是 通过消

4、息来实现的,因此事件驱动也常被称为消 息驱动 10.1.2 事件驱动和消息响应 3、消息队列 用于存放消息的队列,消息系统由 Windows系统自动建立和维护。 Windows消息队列的类型 系统消息队列:由Windows系统维护管理的消 息队列,每当有消息发生时,该消息将首先被 存入系统消息队列。 应用程序消息队列:Windows系统会为每个应 用程序建立一个独立的消息队列,用于存放该 应用程序的消息。 10.1.2 事件驱动和消息响应 4、消息循环 每个应用程序都有一个循环机构,该循环机 构则不断地重复查看程序自身的消息队列 ,如果队列中有消息,就将其取出并执行 相应的消息处理代码,这个处

5、理消息的循 环机构称为消息循环。 10.1.2 事件驱动和消息响应 4、消息循环 每个应用程序都有一个循环机构,该循环机 构则不断地重复查看程序自身的消息队列 ,如果队列中有消息,就将其取出并执行 相应的消息处理代码,这个处理消息的循 环机构称为消息循环。 10.1.2 事件驱动和消息响应 5、Windows程序调度的基本原理 每个Windows程序启动后,就等待用户在其窗口中 进行操作。每个操作会引发一个事件,就会产生 一个与之对应的特定消息。该消息会被Windows 系统捕获。Windows系统对捕获的消息进行分析 后,会将消息传递给产生它的应用程序的消息队 列,每个应用程序的消息循环机构

6、不断地重复查 看它自已的消息队列,如果队列中有消息,就将 其取出并执行相应的消息处理代码, 如果队列中 没有消息就等待,当队列中有消息时就又处理它 ,如此循环往复,直至程序结束。 10.1.2 事件驱动和消息响应 6、事件驱动及消息循环的基本原理 10.1.2 事件驱动和消息响应 8、DOS和Windows程序执行方式对比 10.1.3 Windows程序的构成 1、Windows程序的组成 程序代码 程序代码是程序的主体,用于实现程序的功能 资源 Windows程序具有标准规范的应用程序界面,每个 Windows程序常常包含了许多相同的组成元素,如 菜单、对话框、工具栏、应用程序图标、鼠标光

7、 标、程序版本信息等,这些组成元素被Windows从 程序代码中独立出来,并以各种不同扩展名的文 件形式存在,如.ico(图标)、.bmp(位图)、 .cur(光标)等,Windows系统称之为资源 资源则可以在需要时才通过相关命令加载到程序 中。 .lib C runtime Dll import .RC 资源编译器 .DLG Dialog Editor *.obj *.exe .res .DEF 资源连接器 Image EditorFont Editor .BMP.ICO.CUR .FON .h.c/cpp c编译器 2、Window程序的编译链接过程 10.1.4 VC+的Windows

8、程序设计方法 1API程序设计 API即Application Programming Interface(应用程序 编程接口),它是Windows操作系统和Windows应 用程序之间的标准接口,在应用程序中可以通过 API访问Windows提供的各种函数、宏及数据结构 。 API函数保存在一些动态链接库中,每个Windows 程序都要用到的动态链接库有USER32.Dll、 GDI32.Dll、KERNEL32.Dll。 API程序设计就是直接利用Windows系统提供的 API函数,编写能够在Windows系统中运行的程序 。 10.1.4 VC+的Windows程序设计方法 2MFC程

9、序设计 MFC是Microsoft Foundation Classes的缩写,即 微软基础类库。MFC是建立在API基础上的C+类 库,它对Windows提供的API函数、数据结构、各 种控件按功能进行了分类,利用面向对象技术将 它们封装在不同的类中,并通过继承将这些类组 织在一起。 MFC不仅把API函数封装成了易于使用的类,而 且还提供了建立Windows应用程序的框架结构, 以及建立应用程序的各种组件,简化了Windows 程序设计的难度 1. 句柄 句柄是整个Windows编程的基础。一个句 柄是指Windows使用的一个唯一的整数值 ,是一个4字长(32位无符号整数)的数值 ,用于

10、标识应用程序中不同的对象和同类 对象中不同的实例。 如标识一个窗口、按钮、图标、滚动条、 输入/输出设备、控件或文件等。 应用程序通过句柄能够访问相应的对象信 息。 10.2 Windows程序设计的常用数据结构 常用的句柄类型 HWND 标识窗口句柄 HINSTANCE标识当前实例句柄 HCURSOR标识光标句柄 HFONT标识字体句柄 HPEN标识画笔句柄 HBRUSH标识画刷句柄 HDC标识设备环境句柄 HBITMAP标识位图句柄 HICON标识图标句柄 HMENU标识菜单句柄 HFILE标识文件句柄 10.2 Windows程序设计的常用数据结构 关键字类型等价于 BOOL逻辑类型in

11、t BOOLEAN 逻辑BYTE BYTE字节unsinged char CHAR字符char DOUBLE 双精度double DWORD 双字unsigned long FLOAT浮点数float HANDLE句柄 10.2.2 常用数据类型 INT整数int LONG长整数long SHORT短整数short UCHAR无符号字符unsinged char UINT无符号整数unsinged int ULONG无符号长整数unsigned long USHORT无符号短整数unsigend short VOIDvoid WCHAR双字节码unsigned short WCHAR_T双字节

12、码unsigned short WORD字unsigned short WPARAM消息参数UINT LPARAM消息参数LONG LRESULT消息返回值 LONG HINSTANCE实例句柄unsigned long HWAND窗口句柄unsigned long HDC设备环境句柄unsigned long TCHAR字符char LPSTR字符指针char * LPCSTR常量字符指针const char* LPTSTR字符指针TCHAR * LPVOID无类型指针void * LPCVOID无类型长指针const void * (1)、坐标结构 typedef struct tagPO

13、INT LONG x; LONG y; POINT; 在MFC中还有一个类Cpoint,与POINT结构近似,但它有许多成员函数。 (2)、长、宽尺寸结构:CSIZE,Csize; typedef struct tagSIZE int cx; int cy; SIZE; 10.2.3 点和矩形区域 (3)、记录矩形区域结构RECT和Crect typedef struct tagRECT LONG left; LONG top; LONG right; LONG bottom; RECT; 在MFC中Crect 与此类似,但有成员函数。 LPRECT 为指针RECT类型的常数指针。 (4)、颜

14、色COLORREF 32-bit value used to specify an RGB color. 例:COLORREF RGB(BYTE bRed,BYTE bGreen,BYTE Bblue); 10.2.4 窗口结构 typedef struct _WNDCLASS UINT style; / 窗口类型 WNDPROC lpfnWndProc; / 窗口函数指针 int cbClsExtra; / 为类结构的预留额外空间 int cbWndExtra; / 为窗口结构预留额外空间 HANDLE hInstance; / 窗口类的应用实例句柄 HICON hIcon; / 图标句柄

15、HCURSOR hCursor; / 窗口类的光标 HBRUSH hbrBackground; / 窗口类的背景刷 LPCTSTR lpszMenuName; / 菜单资源名 LPCTSTR lpszClassName; / 窗口类名 WNDCLASS; 10.2.4 窗口结构 WNDCLASS中的style代表窗口类型,可取下面 的值: WS_CHILD子窗口(不能与WS_POPUP同时使用 ) WS_BORDER带边框的窗口 WS_CAPTION带标题栏的窗口 WS_HSCROLL带有水平滚动条的窗口 WS_MAXIMIZE最大尺寸的窗口 WS_MAXIMIZEBOX带最大化框的窗口 WS_MINIMIZE最小尺寸的窗口 WS_MINIMIZEBOX带最小化框的窗口 WS_OVERLAPPED带边框和标题栏的窗口 WS_OVERLAPPEDWINDOW带边框、标题栏、系统菜单及最大、最小化框的窗口 WS_POPUP弹出式窗口 WS_POPUPWINDOW带边框和系统菜单的弹出式窗口 WS_SYSMENU 带系统菜单的窗口 WS_VSCROLL带垂直滚动条的窗口 1、消息结构:M

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

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号