windows程序设计第五版?C程序设计 第五版
其实windows程序设计第五版的问题并不复杂,但是又很多的朋友都不太了解C程序设计 第五版,因此呢,今天小编就来为大家分享windows程序设计第五版的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
windows程序设计第六版pdf windows程序设计第六版
关于《Windows程序设计第六版》及PDF的简要介绍:
书籍推荐:
**《Windows程序设计第六版》**是一本适合有一定C++基础并希望深入学习Windows平台编程的读者的经典教材。该书详细讲解了Windows API的使用,以及如何编写窗口程序等基础知识,是系统编程领域的重要参考资料。PDF版本获取:
PDF版本的《Windows程序设计第六版》可以通过多种途径获取,如在线书店、电子书分享网站或直接从出版社官网购买电子版。请注意,确保下载的PDF版本为正版,以避免版权问题。与第五版的对比:
相较于第五版,第六版在内容上可能有所更新和扩展,包括但不限于新的Windows API、改进的代码示例以及适应新版Visual Studio编译器的调整。因此,如果条件允许,建议选择最新版本进行学习。学习建议:
在学习《Windows程序设计第六版》时,建议结合微软的SDK文档进行查阅,以便更深入地理解API的使用和窗口程序的编写。同时,多上CSDN、博客园、MSDN等编程社区网站,遇到问题可以搜索解决方案或向其他开发者求助。实践是检验真理的唯一标准,因此在学习过程中要多动手编写代码,通过实践来加深理解和记忆。其他学习资源:
除了《Windows程序设计》系列书籍外,还可以参考其他经典教材如《C++ Primer》等,以拓宽知识面和提升编程能力。在线视频教程也是学习编程的重要资源之一,可以通过各大在线教育平台搜索相关课程进行学习。综上所述,《Windows程序设计第六版》是一本值得推荐的Windows平台编程教材,通过学习该书可以系统地掌握Windows API的使用和窗口程序的编写技巧。同时,结合其他学习资源和社区支持,可以更快地提升编程能力。
Windows程序设计的特点
l楼主您好!这个有点专业喔。但是我知道内容在《Windows程序设计(第五版)清华大学出版社》那里可以找到详细介绍的。大家都是windows发烧友,您可以去看一看。一、事件驱动的程序设计
1\传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。一个程序是一系列预先定义好的操作序列的组合,它具有一定的开头、中间过程和结束。程序直接控制程序事件和过程的顺序。这样的程序设计方法是面向程序而不是面向用户的,交互性差,用户界面不够友好,因为它强迫用户按照某种不可更改的模式进行工作。
2\事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。
对于需要用户交互的应用程序来说,事件驱动的程序设计有着过程驱动方法无法替代的优点。
它是一种面向用户的程序设计方法,它在程序设计过程中除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序。
它是一种“被动”式程序设计方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。
二、消息循环与输入
事件驱动围绕着消息的产生与处理展开,一条消息是关于发生的事件的消息。
事件驱动是靠消息循环机制来实现的。
消息是一种报告有关事件发生的通知。
消息类似于DOS下的用户输入,但比DOS的输入来源要广,Windows应用程序的消息来源有以下四种:
(1)输入消息:包括键盘和鼠标的输入。----------这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由应用程序来处理消息。
(2)控制消息:用来与Windows的控制对象,如列表框、按钮、检查框等进行双向通信。当用户在列表框中改动当前选择或改变了检查框的状态时发出此类消息。这类消息一般不经过应用程序消息队列,而是直接发送到控制对象上去。
(3)系统消息:对程序化的事件或系统时钟中断作出反应。一些系统消息,象DDE消息(动态数据交换消息)要通过Windows的系统消息队列,而有的则不通过系统消息队列而直接送入应用程序的消息队列,如创建窗口消息。
(4)用户消息:这是程序员自己定义并在应用程序中主动发出的,一般由应用程序的某一部分内部处理。
Windows操作系统包括三个内核基本元件:GDI, KERNEL,USER。
其中GDI(图形设备接口)负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等。
系统内核KERNEL支持与操作系统密切相关的功能:如进程加载,文本切换、文件I/O,以及内存管理、线程管理等。
USER为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗口过程。每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理。
三、图形输出
Windows程序不仅在输入上与DOS程序不同,而且在程序输出上也与DOS有着很大不同,主要表现为:
1.DOS程序独占整个显示屏幕,其他程序在后台等待。
2.Windows程序的所有输出都是图形。
3.Windows下的输出是设备无关的。-------Windows下的应用程序使用图形设备接口(GDI)来进行图形输出。GDI屏蔽了不同设备的差异,提供了设备无关的图形输出能力,Windows应用程序只要发出设备无关的GDI请求(如调用Rectangle画一个矩形),由GDI去完成实际的图形输出操作。对于一台具有打印矩形功能的PostScript打印机来说,GDI可能只需要将矩形数据传给驱动程序就可以了,然后由驱动程序产生PostScript命令绘制出相应的矩形;而对于一台没有矩形输出功能的点阵打印机来说,GDI可能需要将矩形转化为四条线,然后向驱动程序发出画线的指令,在打印机上输出矩形。
四、GDI(图形设备接口)介绍:
GDI提供两种基本服务:创建图形输出和存储图象。
GDI提供了大量用于图形输出的函数,这些函数接收应用程序发出来的绘图请求、处理绘图数据并根据当前使用设备调用相应的设备驱动程序产生绘图输出。这些绘图函数分为三类:一是文字输出,二是矢量图形函数,用于画线、圆等几何图形,三是光栅(位图)图形函数,用于绘制位图。
GDI识别四种类型的设备:显示屏幕、硬拷贝设备(打印机、绘图机)、位图和图元文件。
前两者是物理设备,后两者是伪设备。
一个伪设备提供了一种在RAM里或磁盘里存储图象的方法。
位图存放的是图形的点位信息,占用较多的内存,但速度很快;图元文件保存的是GDI函数的调用和调用参数,占用内存较少,但依赖于GDI,因此不可能用某个设备来创建图元文件,而且速度比位图要慢。
GDI的图形输出是面向窗口的,面向窗口包含两层含义:
(1)每个窗口作为一个独立的绘图接口来处理,有它自己的绘图坐标。当程序在一个窗口中绘图时,首先建立缺省的绘图坐标,原点(0,0)位于窗口用户区的左上角。每个窗口必须独立的维护自己的输出。
(2)绘图仅对于本窗口有效,图形在窗口边界会被自动裁剪,也就是说窗口中的每一个图形都不会越出边界。即使想越出边界,也是不可能的,窗口会自动的防止其他窗口传过来的任何像素。这样,你在窗口内绘图时,就不必担心会偶然覆盖其他程序的窗口,从而保证了Windows下同时运行多个任务时各个窗口的独立性。
五、资源共享
对于DOS程序来说,它运行时独占系统的全部资源,包括显示器、内存等,在程序结束时才释放资源。而Windows是一个多任务的操作系统,各个应用程序共享系统提供的资源,常见的资源包括:设备上下文,画刷,画笔,字体,对话框控制,对话框,图标,定时器,插入符号,通信端口,电话线等。
Windows要求应用程序必须以一种能允许它共享Windows资源的方式进行设计,它的基本模式是这样的:
1.向Windows系统请求资源;
2.使用该资源;
3.释放该资源给Windows以供别的程序使用。
即使最有经验的Windows程序员也常常会忽略第三步。如果忽略了这一步,轻则当时不出错,但过一会儿出现程序运行出现异常情况,或干扰别的程序正常运行;重则立即死机,比如设备上下文没有释放时。
在Windows应用程序设计中,CPU也是一种非常重要的资源,因此应用程序应当避免长时间的占用CPU资源(如一个特别长的循环);如果确实需要这样做,也应当采取一些措施,以让程序能够响应用户的输入。主存也是一个共享资源,要防止同时运行的多个应用程序因协调不好而耗尽内存资源。
应用程序一般不要直接访问内存或其他硬件设备,如键盘、鼠标、计数器、屏幕或串口、并口等。Windows系统要求绝对控制这些资源,以保证向所有的应用程序提供公平的不中断的运行。如果确实要访问串并口,应当使用通过Windows提供的函数来安全的访问。
六、Windows程序的组成
编写一个典型的Windows应用程序,一般需要:
1.C,CPP源程序文件:源程序文件包含了应用程序的数据、类、功能逻辑模块(包括事件处理、用户界面对象初始化以及一些辅助例程)的定义。
2.H,HPP头文件:头文件包含了CPP、C源文件中所有数据、模块、类的声明。当一个CPP、C源文件要调用另一个CPP、C中所定义的模块功能时,需要包含那个CPP、C文件对应的头文件。
3.资源文件:包含了应用程序所使用的全部资源定义,通常以.RC为后缀名。这里的资源是应用程序所能够使用的一类预定义工具中的一个对象,包括:字符串资源、加速键表、对话框、菜单、位图、光标、工具条、图标、版本信息和用户自定义资源等。
在DOS程序设计过程中,所有的界面设计工作都在源程序中完成。而在Windows程序设计过程中,象菜单、对话框、位图等可视的对象被单独分离出来加以定义,并存放在资源源文件中,然后由资源编译程序编译为应用程序所能使用的对象的映象。资源编译使应用程序可以读取对象的二进制映象和具体数据结构,这样可以减轻为创建复杂对象所需要得程序设计工作。
程序员在资源文件中定义应用程序所需使用的资源,资源编译程序编译这些资源并将它们存储于应用程序的可执行文件或动态连接库中。
七、程序中引用资源的好处:
1.降低内存需求:当应用程序运行时,资源并不随应用程序一起装入内存,而是在应用程序实际用到这些资源时才装入内存。在资源装入内存时,它们拥有自己的数据段,而不驻留于应用程序数据段中;当内存紧张时,可以废弃这些资源,使其占用的内存空间供他用,而当应用程序用到这些资源时才自动装入,这种方式降低了应用程序的内存需求,使一次可运行更多的程序,这也是Windows内存管理的优点之一。
2.便于统一管理和重复利用:将位图、图标、字符串等按资源文件方式组织便于统一管理和重用。比如,将所有的错误信息放到资源文件里,利用一个函数就可以负责错误提示输出,非常方便。如果在应用程序中要多次用到一个代表公司的徽标位图,就可以将它存放在资源文件中,每次用到时再从资源文件中装入。这种方式比将位图放在一个外部文件更加简单有效。
3.应用程序与界面有一定的独立性,有利于软件的国际化:由于资源文件独立于应用程序设计,使得在修改资源文件时(如调整对话框大小、对话框控制位置),可以不修改源程序,从而简化了用户界面的设计。另外,目前所提供的资源设计工具一般都是采用“所见即所得”方式,这样就可以更加直观、可视的设计应用程序界面。由于资源文件的独立性,软件国际化工作也非常容易。比如,现在开发了一个英文版的应用程序,要想把它汉化,只需要修改资源文件,将其中的对话框、菜单、字符串资源等汉化即可,而无需直接修改源程序。
但是,应用程序资源只是定义了资源的外观和组织,而不是其功能特性。例如,编辑一个对话框资源,可以改变对话框的安排和外观,但是却没有也不可能改变应用程序响应对话框控制的方式。外观的改变可以通过编辑资源来实现,而功能的改变却只能通过改变应用程序的源代码,然后重新编译来实现。
C、CPP编译器将C源程序编译成目标程序,然后使用连接程序将所有的目标程序(包括各种库)连接在一起,生成可执行程序。在制作Windows应用程序时,编译器还要为引出函数生成正确的入口和出口代码。
连接程序生成的可执行文件还不能在Windows环境下运行,必须使用资源编译器对其进行处理。资源编译器对可执行文件的处理是这样的:如果该程序有资源描述文件,它就把已编译为二进制数据的资源加入到可执行文件中;否则,仅对该可执行文件进行相容性标识。应用程序必需经过资源编译器处理才可以在Windows环境下运行。
八、结构化程序设计和面向对象的程序设计
面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法——结构化程序设计所不能解决的代码重用问题。
结构化程序设计从系统的功能入手,按照工程的标准和严格的规范将系统分解为若干功能模块,系统是"实现模块功能的函数和过程"的集合。由于用户的需求和软、硬件技术的不断发展变化,按照功能划分设计的系统模块必然是易变的和不稳定的。这样开发出来的模块可重用性不高。
面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务(功能)为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。
面向对象程序设计同结构化程序设计相比最大的区别就在于:前者首先关心的是所要处理的数据,而后者首先关心的是功能。
面向对象程序设计是一种围绕真实世界的概念来组织模型的程序设计方法,它采用对象来描述问题空间的实体。一般的认为,对象是包含现实世界物体特征的抽象实体,它反映了系统为之保存信息和(或)与它交互的能力。它是一些属性及服务的一个封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。
"类"是具有相同操作功能和相同的数据格式(属性)的对象的集合。
类可以看作抽象数据类型的具体实现。
数据类型是指数据的集合和作用于其上的操作的集合,而抽象数据类型不关心操作实现的细节。
从外部看,类型的行为可以用新定义的操作加以规定。
类为对象集合的抽象,它规定了这些对象的公共属性和方法;对象为类的一个实例。苹果是一个类,而放在桌上的那个苹果则是一个对象。
对象和类的关系相当于一般的程序设计语言中变量和变量类型的关系。
消息是向某"对象"请求服务的一种表达方式。对象内有方法和数据,外部的用户或对象对该对象提出的服务请求,可以称为向该对象发送消息。
"合作"是指两个对象之间共同承担责任和分工。
在Windows中,程序的基本单位不是过程和函数,而是窗口。一个窗口是一组数据的集合和处理这些数据的方法和窗口函数。从面向对象的角度来看,窗口本身就是一个对象。Windows程序的执行过程本身就是窗口和其他对象的创建、处理和消亡过程。Windows中的消息的发送可以理解为一个窗口对象向别的窗口对象请求对象的服务过程。因此,用面向对象方法来进行Windows程序的设计与开发是极其方便的和自然的。最后祝您好运!!!
Windows程序设计教程的目录
第1章概述1
1.1Windows的发展历史1
1.2Windows操作系统的基本性质和用途3
1.3API的基本特征及其发展历程5
1.4编程工具及其发展概况6
1.5集成开发环境7
1.6C程序和Windows程序的比较7
1.7Windows程序HelloMsg.c的三个基本组成部分8
1.7.1#include声明和包含文件8
1.7.2Windows程序HelloMsg.c的进入点8
1.7.3MessageBox函数10
1.8字符编码及Unicode简介11
1.8.1字符集编码的发展简史12
1.8.2双字节字符集13
1.8.3Unicode字符集13
1.9字符的数据类型char和宽字符数据类型wchar14
1.9.1操作系统中基本数据类型的确定14
1.9.2单字节字符数据类型14
1.9.3宽字符数据类型15
1.9.4宽字符库函数16
1.9.5字符串函数的Unicode版和ASCII版的合一方法…17
1.9.6TCHAR.h头文件的作用17
1.9.7编译命令中_UNICODE识别字的引入17
1.9.8Windows对宽字符支持18
1.10应用程序实现Unicode和ASCII混合编码的原理19
1.10.1WINNT.h是对Unicode支持的头文件19
1.10.232位系统中的MessageBox函数20
1.10.3Windows的字符串处理函数21
1.10.4Windows中的sprintf函数22
练习124
第2章Windows操作系统的寻址方法与存储器管理25
2.1Windows的芯片26
2.2Windows的分段寻址方法26
2.2.116位实模式26
2.2.216位保护模式27
2.2.332位保护模式29
2.2.4分段寻址方法的缺陷及其消除方法31
2.332位分页保护模式及其寻址方法31
2.4抢占式多任务、非抢占式多任务、进程和线程的概念33
2.4.1进程和线程的概念33
2.4.2抢占式多任务34
2.4.3非抢占式多任务34
2.4.432位抢占式多任务多线程的工作原理36
2.532位Windows应用程序的消息输入方式37
2.5.1多线程的开发37
2.5.232位Windows采用多重输入队列37
2.632位Windows中虚拟内存空间的划分38
2.732位Windows中虚拟内存的管理40
2.7.1内存页与分页文件40
2.7.2有关地址空间的解释40
2.7.332位Windows中分配内存页的两种方法——预约与委托41
2.7.4异常事件及其处理方法43
2.7.5VirtualQuery()的用法43
2.7.6改变页保护标识的函数VirtualProtect()45
2.7.7内存的释放函数VirtualFree()46
练习247
第3章开发Windows应用程序的技术基础49
3.1应用程序的结构与编译49
3.1.1Windows应用程序的结构和C语言程序结构的比较49
3.1.2Windows应用程序的编译和C语言程序编译的比较50
3.1.3Windows编译应用程序所需的六个基本文件51
3.2Windows应用程序设计接口57
3.3标识符的匈牙利命名惯例58
3.4事件驱动程序设计59
3.5动态链接库函数61
3.6PASCAL调用规范与WINAPI调用规范62
3.7句柄与代号63
3.8Windows应用程序的工作原理63
3.9窗口类的作用及其用法初步65
练习366
第4章应用程序的分析69
4.1HELLOWIN.C应用程序69
4.2WinMain函数的四个参数72
4.3窗口类结构WNDCLASS73
4.4窗口类结构的各条款介绍74
4.5与窗口有关的识别字的介绍76
4.6和窗口有关的几种结构76
4.7代号简介77
4.8函数调用77
4.9注册窗口类78
4.10建立窗口78
4.11显示窗口79
4.12基本消息循环80
4.12.1GetMessage(&msg,NULL,0,0)函数80
4.12.2TranslateMessage(&msg)和DispatchMessage(&msg)函数80
4.12.3MSG结构及其解释81
4.13窗口函数82
练习484
第5章Windows操作系统中的窗口类85
5.1Windows中的窗口类概述85
5.1.1系统全局窗口类86
5.1.2应用专用窗口类86
5.1.3应用全局窗口类87
5.2几种窗口类结构介绍87
5.2.1Windows 95中的扩展窗口类结构87
5.2.2窗口类条款的补充说明88
5.2.3Windows NT中的窗口类89
5.3几个与窗口类有关的函数90
5.3.1LoadIcon函数90
5.3.2LoadImage函数91
5.3.3LoadCursor函数92
5.3.4CreateSolidBrush函数93
5.4窗口类的式样95
5.5设计中值得注意的几个问题97
练习598
第6章输出101
6.1客户区的绘制和更新102
6.1.1WM_PAINT消息102
6.1.2有效矩形和无效矩形103
6.2GDI简介104
6.2.1设备描述表104
6.2.2获得hDC代号的方法105
6.3TextOut函数109
6.4重画区域的设定110
6.5系统字体111
6.5.1字体信息的存储112
6.5.2用五个参数表示字体尺寸112
6.5.3格式化文字113
6.6Windows系统中的视觉元件信息表115
6.7字体显示例子SYSMETS1.C116
6.7.1SYSMETS1.C窗口函数的分析119
6.7.2SYSMETS1.C程序存在问题120
6.8滚动条的使用120
6.8.1滚动条的范围和地址121
6.8.2滚动条消息122
6.8.3在SYSMETS1.C中加入滚动功能124
6.8.4在WM_VSCROLL消息之后更新客户区的方法128
6.9建立更好的滚动129
6.9.132位滚动条函数的应用129
6.9.2滚动范围的计算131
6.9.3新SYSMETS——SYSMETS3.C132
练习6138
第7章图形程序的编程基础141
7.1概论141
7.1.1GDI函数及其分类142
7.1.2GDI绘制的基本图形143
7.1.3图形程序设计的其他问题144
7.2设备描述表145
7.2.1取得设备描述表代号的方法145
7.2.2取得设备描述表中信息的方法146
7.2.3保存设备描述表147
7.2.4设备描述表的构成148
7.2.5DEVCAPS1程序149
7.2.6每个度量单位内的像素数目——解析度152
7.2.7色彩153
7.3画线函数与画笔155
7.3.1处理像素的函数155
7.3.2画线函数156
7.3.3画正弦曲线程序SINEWAVE158
7.3.4画线函数与画图函数的关系159
7.3.5像素偏差问题160
7.3.6LINEDEMO画图程序163
7.3.7画笔164
7.3.8背景模式、背景颜色及其处理168
7.3.9“位布尔运算”与画线模式169
7.4画图171
7.4.1图形函数171
7.4.2图形的填入——画刷171
7.4.3画刷的建立、选择和删除172
7.5GDI映射方式174
7.5.1映射方式概述174
7.5.2设备坐标和逻辑坐标176
练习7177
第8章键盘程序编程基础179
8.1键盘输入概论179
8.1.1键盘的输入焦点180
8.1.2系统消息队列与应用程序消息队列181
8.2按键181
8.2.1基本概念181
8.2.2四个按键消息182
8.2.3系统按键消息与非系统按键消息182
8.2.4虚拟键码183
8.2.5按键消息的参数lParam187
8.2.6如何使用GetKeyState函数了解按键的状态188
8.2.7按键消息及其使用189
8.3字符消息及其处理192
8.3.1概述192
8.3.2四个字符消息193
8.3.3按键消息和字符消息的处理顺序194
8.3.4控制字符键及其处理195
8.3.5WM_DEADCHAR消息196
8.4显示键盘消息和字符消息的显示程序KEYVIEW1197
8.5字体202
8.5.1Windows支持的三种字体202
8.5.2Windows中的内定字体203
8.5.3显示字体的程序STOKFONT204
练习8208
第9章鼠标程序编程基础211
9.1概述211
9.1.1GetSystemMetrics函数的应用211
9.1.2预先定义的鼠标游标212
9.1.3鼠标消息与键盘消息的区别212
9.1.4显示区域内的鼠标消息及其处理方法212
9.1.5鼠标消息在其他情况下的处理214
9.1.6鼠标消息的处理例子214
9.1.7CONNECT程序的应用216
9.2按键及其处理217
9.2.1Shift Ctrl键的处理217
9.2.2为单键鼠标提供右键的处理方法218
9.2.3如何使用GetKeyState函数了解鼠标按键状态219
9.2.4双击鼠标按键及其处理219
9.3非显示区域鼠标消息及其处理220
9.3.1非显示区域鼠标消息220
9.3.2非显示区域中的命中测试消息221
9.3.3从消息产生消息222
9.4显示区域中的命中测试程序223
9.4.1命中测试程序CHECKER1.C223
9.4.2使用键盘模拟鼠标225
9.4.3在CHECKER1中加入键盘界面后的程序226
9.5子窗口的基本概念231
9.5.1用子窗口实现CHECKER程序——CHECKER3.C231
9.5.2CHECKER3中添加键盘界面——CHECKER4.C237
练习9244
第10章预定义窗口类和子窗口控制项247
10.1基本概念247
10.1.1什么是子窗口控制项247
10.1.2怎样建立子窗口控制项248
10.1.3控制项的操作250
10.1.4Windows系统中的控制项251
10.2按钮控制项例程BTNLOOK.C252
10.2.1CreateWindow函数的应用256
10.2.2按钮控制项的预定义窗口类button256
10.2.3按钮控制项的名称标签257
10.2.4按钮控制项的式样257
10.2.5按钮控制项的尺寸与位置257
10.2.6CreateWindow的其他参数257
10.3子窗口与父窗口之间的消息传送258
10.3.1子窗口向父窗口发送command消息258
10.3.2父窗口向子窗口发送消息259
10.4按钮260
10.4.1按钮的分类260
10.4.2分组块264
10.4.3如何改变按钮上的文字264
10.4.4按钮的可见与启用264
10.4.5按钮和输入焦点265
10.5按钮控制项的颜色及其设定266
10.5.1WM_CTLCOLORBTN消息的应用268
10.5.2拥有者自画按钮表面图案的程序OWNDRAW.C269
10.6静态控制项274
10.6.1预定义静态窗口类的特点274
10.6.2静态控制项的窗口式样275
10.6.3在静态控制项上写“文字”275
10.7滚动条控制项276
10.7.1滚动条窗口类276
10.7.2滚动条控制项例程COLORS1.C277
10.7.3COLORS1程序的设计技巧及有关函数说明283
10.8编辑控制项290
10.8.1编辑控制项的例程POPPAD1.C290
10.8.2编辑控制项的窗口类edit和窗口式样ES_291
10.8.3编辑控制项产生的通知码292
10.8.4编辑控制项的使用293
10.8.5把消息发送给编辑控制项293
10.9列表框控制项294
10.9.1预定义列表框窗口类listbox294
10.9.2列表框式样295
10.9.3列表框功能识别字LB_296
10.9.4应用功能识别字对列表框中项目进行增删296
10.9.5应用功能识别字对列表框中项目进行选择、查找与获得298
10.9.6接收来自列表框的通知码299
练习10300
第11章对话框的使用303
11.1概述303
11.1.1什么是对话框303
11.1.2对话框的分类304
11.1.3对话框函数305
11.1.4在对话框中使用控制项306
11.1.5设计模式对话框的步骤306
11.2模式对话框的实例分析307
11.2.1最简单的模式对话框例程About1.C307
11.2.2对话框模板和控制项的设计314
11.2.3较复杂模式对话框的例程ABOUT2.C318
11.2.4对话框函数中控制项的使用325
11.2.5避免使用整体变量的方法330
11.2.6Tab键、游标移动键在控制项输入焦点转移中的应用331
11.2.7在对话框上画图333
11.2.8将其他函数用于对话框334
11.3非模式对话框实例分析334
11.3.1模式对话框与非模式对话框的比较335
11.3.2非模式对话框例程COLORS2.C337
练习11343
第12章Windows中的资源345
12.1资源描述文件与模块定义文件345
12.1.1有关“资源”、“模板”的基本概念345
12.1.2资源描述文件346
12.1.3模块定义文件347
12.2图标349
12.2.1概述349
12.2.2Developer Studio开发应用程序ICONDEMO的基本方法350
12.2.3大图标、小图标的应用355
12.2.4解读ICONDEMO.RC和RESOURCE.H文件356
12.2.5LoadIcon返回图标代号356
12.2.6在应用程序中使用图标357
12.3在程序中使用定制游标358
12.3.1在窗口类中设置游标358
12.3.2用SetClassLong设置子窗口中的游标358
12.3.3用SetCursor改变窗口中的游标359
12.4字符串资源及其应用359
12.4.1什么是字符串资源359
12.4.2使用字符串资源的程序段360
12.5菜单361
12.5.1菜单概念361
12.5.2菜单代号、菜单项ID与菜单ID362
12.5.3在程序中引用菜单362
12.5.4和菜单有关的窗口消息363
12.5.5菜单显示例程MENUDEMO.C366
12.5.6建立菜单的另一种方法373
12.5.7在客户区范围内任意处可以启动的下拉式菜单374
12.5.8系统菜单378
12.5.9一些改变菜单的函数379
12.5.10处理菜单的其他函数379
12.6加速键381
12.6.1用加速键实现菜单项功能381
12.6.2安排加速键的几条规则382
12.6.3加速键的实施步骤382
12.6.4加速键表模板382
12.6.5用Developer Studio生成加速键表模板385
12.6.6在程序中加载加速键表385
12.6.7消息循环中加入对加速键的处理386
12.6.8窗口函数接收加速键的窗口消息387
12.7菜单与加速键在应用程序中的应用——POPPAD2实例分析388
12.7.1POPPAD2例程388
12.7.2加速键表的载入395
12.7.3case WM_INITMENUPOPUP消息处理分支的解释396
练习12397
附录A参考VC++的索引399
参考文献403
关于windows程序设计第五版和C程序设计 第五版的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。