欢迎来到天天文库
浏览记录
ID:34613455
大小:570.71 KB
页数:24页
时间:2019-03-08
《第2章 windows程序设计基础new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章Windows程序设计基础——勿在浮沙筑高楼,打好基础是关键教学内容§2.1Windows编程基础§2.2MFC程序设计基础§2.3应用程序框架§2.4综合实例——创建宾馆管理系统的框架§2.5小结思考与练习§2.1Windows编程基础2.1.1Windows编程基本概念1、窗口窗口是Windows应用程序中一个非常重要的元素。一个Windows应用程序至少要有一个窗口,称为主窗口。从用户的角度讲,窗口是屏幕上与一个应用程序相对应的矩形区域,是用户与应用程序之间的图形化的接口。每当用户打开一个应用程序时,应用程序就会创建并显示一个窗口;当用户操作窗口中的对象时,窗口就
2、会做出反映;关闭主窗口时就会终止应用程序的运行;通过选择应用程序窗口,就会选择与窗口对应的应用程序。从程序员的角度讲,窗口是Windows应用程序的基本操作单元,是系统管理应用程序的基本单位,是应用程序与用户之间交互的接口。应用程序的运行过程就是窗口内部、窗口与窗口之间、窗口与系统之间进行数据处理和数据交换的过程。因此,编写应用程序就是要创建一个或多个窗口,管理多个窗口之间的数据处理与交换。§2.1Windows编程基础2.1.1Windows编程基本概念窗口的特性是由一个WNDCLASS结构体进行定义的。WNDCLASS定义如下:typedefstructtagWNDCLA
3、SS{UINTstyle;//窗口风格WNDPROClpfnWndProc;//指向窗口处理函数的函数指针intcbClsExtra;//窗口结构中的预留字节数intcbWndExtra;//为其它创建窗口预留字节数HINSTANCEhInstance;//注册该窗口类的实例句柄HICONhIcon;//代表该窗口类的图标句柄HCURSORhCursor;//该窗口客户区鼠标光标句柄HBRUSHhbrBackGround;//该窗口背景颜色句柄LPCSTRlpszMenuName;//指向窗口菜单名的字符指针LPCSTRlpszClassName;//指向窗口名的字符指针}WND
4、CLASS;§2.1Windows编程基础2.1.1Windows编程基本概念2、句柄在Windows程序中,每产生一个资源(如图标、光标、窗口、应用程序的实例等),操作系统都要将它们放入相应的内存,并为这些内存指定一个唯一的标识号,这个标识号即该资源的句柄。操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源的,句柄是系统用来唯一标识某个Windows对象的符号。句柄的数据类型在winnt.h中说明如下:typedefvoid*HANDLE;从物理上看句柄是一个泛型(无类型)指针,但它不是指向一个Windows对象的存储首地址,而是指向包含了使用该对象有关信息的一块
5、内存单元。从逻辑上说它是一个代号,一个对象的代号。句柄所指向的内容是不能由句柄操作来改变的,只能由系统来改变。§2.1Windows编程基础2.1.1Windows编程基本概念3、消息和消息队列Windows程序设计是面向事件的。在Windows环境下,应用程序启动后,系统等待用户在图形用户界面内的输入选择,如鼠标按键、键盘按键、窗口被创建、关闭、改变大小、移动等,在Windows看来,这些都是事件。只要有事件发生,系统即产生特定的消息,驱动相应的处理函数进行处理,因此Windows应用程序也称为事件驱动程序。消息描述了事件的类别,包含了相关信息,Windows应用程序利用消
6、息与系统及其它应用程序进行信息交换。由于windows事件的发生是随机的,程序的执行先后顺序也无法预测,系统采用消息队列来存放事件发生的消息。每个Windows程序都有一个消息队列,该队列是一个先进先出的缓冲区,通常是一个某种变量类型的数组。§2.1Windows编程基础2.1.1Windows编程基本概念3、消息和消息队列在winuser.h中,消息结构的定义如下:typedefstructtagMSG{HWNDhWnd;//指定消息发向的窗口句柄UINTmessage;//标识消息的消息值WPARAMwParam;//消息参数LPARAMlParam;//消息参数DWOR
7、Dtime;//消息进入队列的时间POINTpt;/消息进入队列时鼠标指针的屏幕坐标}MSG;§2.1Windows编程基础4、数据类型说明数据类型BYTE8位无符号字符BSTR32位字符指针COLORREF32位整数,表示一个颜色WORD16位无符号整数LONG32位有符号整数DWORD32位无符号整数,是WORD的两倍长度UINT32位无符号整数BOOL布尔值,值为TRUE或FALSEHANDLE句柄LPSTR32位指针,指向字符LPCSTR32位指针,指向字符串常量LPTS
此文档下载收益归作者所有