Visual C++是Microsoft推出的一个功能强大的可视化应用程序开发工具,是计算机界公认的最优秀的专业化应用开发工具之一。本书内容主要介绍Visual C++程序设计中经常碰到的一些疑难问题的解决方法以及相关技巧。
本书从实际应用程序设计的角度出发,以解决编程中常见的实际问题为书中内容的核心。全书内容分为16个专题,全面、深入、详实地介绍了Visual C++编程的思路、方法、手段和技巧,对每个问题都进行了细致的描述和深入浅出的剖析。另外,书中还给出了许多程序源代码,并给出了相关的中文说明和注释,因此,本书具有较强的实用价值,可供广大编程人员在工作中参考。
第一章 文档—视图—框架体系\r\n\r\n如何禁止在程序开始运行时新建一个文档\r\n如何在单文档应用中实现多视图\r\n如何使用初始化文件来保存和恢复程序的运行状态信息\r\n如何打开最近使用的文件\r\n如何改变视图的背景色\r\n如何改变主窗口中的标题\r\n如何在打开的文件对话框内实现选择多个文件\r\n\r\n第二章 菜单\r\n\r\n如何实现弹出式菜单\r\n如何实现带标题的弹出式菜单\r\n如何根据命令标识确定菜单项的位置\r\n如何把最近打开过的文件列表加入子菜单中\r\n如何实现自画式菜单\r\n\r\n第三章 对话框\r\n\r\n如何改变对话框的大小\r\n如何改变对话框的背景色\r\n如何用位图作对话框的背景\r\n如何在标题栏中显示动态图标\r\n如何设置对话框的初始位置\r\n\r\n第四章 位图\r\n\r\n如何将一个设备无关位图转换成设备相关位图\r\n如何将一个设备相关位图转换成设备无关位图\r\n如何显示透明位图\r\n如何实现自适应大小的位图\r\n\r\n第五章 按钮控件\r\n\r\n彩色按钮\r\n动画按钮\r\n如何显示三维文本\r\n\r\n第六章 编辑框控件\r\n\r\n如何使单行编辑框在输入回车后不响应IDOK消息\r\n如何实现Flat风格的编辑框\r\n如何实现可方便输入IP地址的编辑框\r\n如何取得密码编辑框的内容\r\n如何实现用于时间、日期、电话号码、邮政编码的编辑框\r\n\r\n第七章 组合框控件\r\n\r\n如何在下拉组合框中实现自动选择\r\n如何实现颜色选择组合框\r\n如何实现拾取系统目录的组合框\r\n如何在失效后的下拉组合框内显示黑色文本\r\n如何实现字体选择组合框\r\n\r\n第八章 静态框\r\n\r\n如何控制长文件名以简略方式显示\r\n如何显示三维分隔线\r\n如何改变表态框的前景色和背景色\r\n如何显示数字钟\r\n\r\n第九章 状态栏控件\r\n\r\n如何在状态栏中添加进度条\r\n如何在状态栏上显示滚动的文本\r\n如何在状态栏上显示时钟\r\n\r\n第十章 工具栏控件\r\n\r\n如何从浮动工具条中去掉Close钮\r\n如何在工具栏下显示文本\r\n如何在工具栏添加自定义的状态消息和提示\r\n如何在工具栏上添加其他控件\r\n如何在工具栏上显示16位真彩色位图\r\n\r\n第十一章 属性表控件\r\n\r\n如何改变标签栏的名称\r\n如何在属性表的按钮区域添加位图\r\n如何去掉属性表控件的“应用”按钮\r\n如何改变标签栏的字体\r\n如何创建一个基于属性表控件的应用程序\r\n\r\n第十二章 剪贴板技术\r\n\r\n如何实现复制/粘贴和拖拽操作\r\n如何从资源管理器得到文件名\r\n\r\n第十三章 进程和线程管理技术\r\n\r\n如何获得当前所有的活动进程\r\n如何切换,终止指定进程\r\n如何使一个应用的多个实例运行在同一个进程空间\r\n\r\n第十四章 动态链接库(DLL)\r\n\r\n如何确定DLL的版本号\r\n如何在DLL中实现对话框\r\n如何在一个MFC扩展DLL内使用另一个MFC扩展DLL\r\n如何在多个扩展DLL中互相调用\r\n如何处理VB中用户自定义类型的数组中的字符串\r\n如何显式地链接DLL中的类\r\n\r\n第十五章 网络编程\r\n\r\n如何利用TCP栈PING一台计算机\r\n如何实现RAS(Remote Access Service)客户类\r\n如何得到本地机的名称和IP地址\r\n如何列举不整个网络的计算机\r\n如何利用浏览器控件打印网页\r\n如何实现一个简单的FTP客户器\r\n如何解释POP3协议\r\n如何解释SMTP协议\r\n\r\n第十六章 IE编程\r\n\r\n如何调用IE中的“Internet Options”\r\n如何连接一个正在运行的IE实例\r\n如何使ATL HTML控制实现IE的浏览栏\r\n如何在CHtmLView中实现剪切、粘贴等编辑操作\r\n如何显示模式的HTML对话框
Visual C++是Microsoft推出的一个功能强大的可视化应用程序开发工具,它在计算机领域中被公认为是最优秀的专业化应用开发工具之一,目前,全世界有超过150万的专业程序员在利用它进行编程工作。Visual C++作为一个集成开发工具,为编程工作者提供了程序框架代码自动生成和可视化的资源编辑功能,从而使编程工作变得更为简单。由于Microsoft为Visual C++提供了强大的基本类库MFC(Microsoft Fundation Classes),因此确立了Visual C++在开发语言平台上的领先地位,它真正把Windows应用程序开发带入了一个面向对象的时代。
Visual C++不仅仅是程序设计语言,而且也还是一个非常全面的应用程序开发环境,使用它可以开发出具有专业水平的Windows应用程序。要想充分利用Visual C++的优势进行程序开发,必须首先理解C++程序设计语言的规范,这样就可以充分了解Microsoft基本类库(MFC)的体系结构。MFC体系结构包容了Windows API中的用户界面部分,并使程序员能够很容易地以面向对象的方式开发Windows应用程序。这种体系结构适用于所有版本的Windows系统并彼此兼容,因此,使用MFC所建立的源程序是完全可移植的。
使用过Windows API编制Windows应用程序的设计人员会有这样的体会:即使是开发一个简单的Windows应用程序也需要对Windows的编程原理有很深刻的认识,同时也要手工编写冗长的代码。因为程序的出错率几乎是随着代码长度的增加呈几何级数增长的,而且当程序容量逐渐膨胀的时候,调试程序会变得越来越困难,所以传统的Windows结构化程序设计需要程序开发人员有极大的耐心和丰富的编程经验。
Visual C++中引入了微软定义的基本类库(MFC)后,便使Windows程序设计彻底实现了模板化,从而大大降低了程序设计的复杂性。MFC中包含了许多微软公司已经定义好的程序开发过程中最常用到的对象。我们知道,虽然我们要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计、对文件的操作、多媒体的使用、数据库的访问等等一些最主要的大类,这一点正是微软提供MFC类库最重要的原因。MFC类库具有很好的扩展性,在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,那么我们只要简单地调用已有对象的方法就可以了。用户还可以利用面向对象技术中很重要的“继承”方法,从类库中的已有对象派生山自己所需要的对象。派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由用户自己根据需要加上所需的特性和方法,成为一个更有专用特点、功能更为强大的对象。当然,也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。正是由于MFC编程方法充分利用了面向对象技术的优点,因此它使得用户编程时不必过多地在对象方法的实现细节上投入大量精力。同时类库中的各种对象的强大功能足以完成程序中的绝大部分所需功能。MFC的应用使得程序员在编制应用程序时所需要编写的代码大为减少,并有力地保证了程序具有良好的可调试性。在Visual C++程序设计中,对MFC类库中的对象进行派生是一种普遍做法,本书中将给出一些生动的例子来剖析这其中的奥妙。
但是,需要指出的是,MFC类库编程并不是Visual C++程序设计的全部内容。在很多场合,对Windows API的调用还是很必要的,或者说可以带来更高的效率。因此,本书也将把对Windows API的一些调用窍门融合到具体的范例中去。
本书的读者对象主要是具有一定编程基础的程序编制人员,因此,本书在编写中把着眼点放在应用程序的编制上,以解决编程中的常见问题为主要目的。书中将内容分为16个专题,全面、深入、详实地介绍VC++编程的方法和技巧,对每个问题都作了细致的描述和深入浅出的剖析,因此,本书具有较强的实用性,可为广大编程人员在工作中提供有益的帮助。
本书主要由钱新贤、杨猛、程兆炜、张少东编写,另外,参与本书编写和资料整理的人员还有:贺晓天、黄敏、林云、林立、朱红尘、刘斌、刘芳、刘孟川、吴天远、钱雨、张毅、张泽宏、张宏林、张行天、韦略、高峰、肖楚寒、严飞、严清华、吕杰、范才全、范继德、陈新、陈文远、谢云、周海平、周新、黄志刚、黄宏威、傅明等。
由于作者水平有限,很难把Visual C++编程技术全部掌握得十分精通,因此书中缺陷与偏颇之处在所难免,恳请广大读者批评指正。