Visual C++编程实例与技巧集粹

Visual C++编程实例与技巧集粹
作 者: 龚志翔
出版社: 北京希望电子出版社
丛编项: 编程实战与技巧系列
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: VC++
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Visual C++编程实例与技巧集粹》作者简介

内容简介

本书完全以实例的形式向读者介绍了VisualC++语言编程的思路、方法以及技巧。本书中提供的例子涉及的内容有:窗体(17个例子),控件(70个例子),DLL(4个例子),文件(15个例子),系统(14个例子),数据库(12个例子),网络(29个例子),多媒体(18个例子),进程(18个例子),图形处理与算法(22个例子),硬件(14个例子),界面(33个例子),其他(18个例子)。本书适合VisualC++初学者和中级程序员使用,也可作为业余爱好者、高校计算机专业师生自学、教学用书。VisualC++是MicrosoftVisualStutio套装软件的一个有机组成部分。虽然在构造大多数常规应用程序方面,VisualC++没有市场上常见的快速开发工具(比如PowerBuilder,Delphi,VisualBasic)的开发效率高,但在速度和代码大小要求较高的场合(比如设备驱动程序等),它依然是首选的开发工具之一。VisualC/C++作为功能强大的可视化应用程序开发工具,是计算机界公认的优秀应用开发工具。Microsoft的基本类库MFC使得开发Windows应用程序变得很容易,适合作为各种系统软件、应用软件、网络软件、游戏软件等开发平台。根据VisualC/C++的不同应用对象,将精选的多个实例分为窗体、控件、数据库、网络、多媒体等类别进行归纳总结。全书本着实用第一的原则,紧紧围绕主题展开,循序渐进,由浅入深地介绍了使用VisualC/C++进行应用程序开发的思想方法与编程技巧。本书的特色体现如下几点:第一,每一章都是通过一个个的实例来介绍VisualC/C++应用编程方法和技巧,避免枯燥、空洞的理论,并且每一个实例都具有很强的实用性和代表性。第二,所选的每一个实例都是从事VisualC/C++应用编程人员的经验总结,具有很强的实用性,其中很多编程技巧可供借鉴。本书适用于有一定VisualC/C++应用基础的编程人员和应用开发人员,对初学VisualC/C++编程的读者也有一定的参考价值。本书由龚志翔执笔,参加编写的还有龚波、龚建、温尚清、丁满泉、黄司渭、张德强、陈博、陈发吉、李正希、周树成、胡方霞、史阳、张志、王东军、李立元、赖擎、周莹,在这里表示深深的感谢。由于时间比较仓促,书中难免存在一些不足之处,我们诚恳地期望广大读者批评指正。

图书目录

第1章 窗体 1

实例1 实现“气球式”工具提示 1

实例2 单文档与多视的实现方法 1

实例3 同时显示2个对话框 5

实例4 实现对话框上信息的显示 5

实例5 建立滚动视窗 7

实例6 用SDI实现2个文档模板 9

实例7 定制多媒体真彩封页 11

实例8 控制工具条的停靠位置 14

实例9 实现窗口的自动滚动 17

实例10 建立一个带滚动条的窗口 23

实例11 实现透明窗口的显示 24

实例12 实现隐藏和重显窗口 26

实例13 控制 Windows 任务栏图标 27

实例14 用VC进行屏幕截取编程 32

实例15 实现带阴影弹出窗口的技术 37

实例16 实现透明浮动按键 44

实例17 在状态条中显示进程状态 49

第2章 控件 53

实例1 实现MFC应用程序中的对象通信 53

实例2 让窗口和MDI窗口一启动就最大化或最小化 56

实例3 使窗口始终在最前方 56

实例4 改变默认光标的形状和颜色 56

实例5 阻止Windows关闭 57

实例6 实现CDC中的竖排文本 57

实例7 激活变灰的弹出菜单 58

实例8 正确地在线程之间传送消息 59

实例9 TreeCtrl控制的显示速度 59

实例10 从MFC扩展动态链接库中显示一个对话框 60

实例11 隐藏用户界面 61

实例12 实现SDI与MDI的转换 62

实例13 控制窗口框架的最大最小尺寸 62

实例14 改变窗口框架的颜色 63

实例15 在标题上加上标志“*” 64

实例16 改变对话框或窗体视窗的背景颜色 65

实例17 获取一个对话框控件的指针 66

实例18 改变控件的字体 66

实例19 在OLE控件中使用OLE_COLOR数据类型 67

实例20 在不使用通用文件打开对话框的情况下显示一个文件列表 67

实例21 使旋转按钮控件看起来倒转 68

实例22 用位图显示下压按钮 68

实例23 创建三态下压按钮 69

实例24 动态创建控件 69

实例25 限制编辑框中的准许字符 69

实例26 改变控件的颜色 70

实例27 向列表框中添加多个项时防止闪烁 72

实例28 向编辑控件中添加文本 72

实例29 访问预定义的GDI对象 72

实例30 获取GDI对象的属性信息 73

实例31 实现一个橡皮区矩形 74

实例32 更新翻转背景颜色的文本 75

实例33 创建一个字回绕的CeditView 76

实例34 通用控件 76

实例35 移动窗口 77

实例36 重置窗口的大小 77

实例37 从数据库中读大于32Kbyte的内容 77

实例38 实现CFormView中的上下文帮助 78

实例39 CListBox滚动 79

实例40 使CListView成为类似WM_DIASBLED的风格 79

实例41 处理RegisterWindowMessage中的BroadcastSystemMessage 80

实例42 获得CListCtrl中选择变化时的通知 80

实例43 选择CTreeCtrl中的节点文本进行编辑 81

实例44 重载MRU文件 81

实例45 改变CImageList控件中图像颜色 82

实例46 在匹配模板定义时寻找一个DOUBLE参数 84

实例47 使用COleClientItem的IDispatch接口 84

实例48 在CListCtrl中删除多个选择项 85

实例49 控制菜单的大小 85

实例50 实现简单的mdi应用程序 86

实例51 让mfc应用程序可以在最上面 87

实例52 增加视图中ActiveX控件的事件处理函数 88

实例53 创建一个动态的Tree控件 88

实例54 在List控件中实现整栏选择 88

实例55 限制mdi子框架最大化时的大小 89

实例56 切换视口 90

实例57 单击窗口标题栏以外的区域使窗口移动 92

实例58 改变视窗的背景颜色 93

实例59 改变窗口标题 93

实例60 防止主框窗口在其说明中显示活动的文档名 94

实例61 获取有关窗口正在处理的当前消息的信息 94

实例62 创建一个不规则形状的窗口 95

实例63 设置工具条标题 97

实例64 创建和使用无模式对话框 97

实例65 在程序中获得其他程序的图标 98

实例66 实现编程结束应用程序 99

实例67 加载其他的应用程序 99

实例68 自定义消息 100

实例69 自定义窗口创建MFC 100

实例70 类之间的访问方法 101

第3章 DLL 104

实例1 如何制作DLL 104

实例2 如何利用DLL增强软件功能 106

实例3 如何通过MFC应用程序检测DLL的版本信息 108

实例4 如何用纯资源DLL编写代码 115

第4章 文件 116

实例1 Visual C 环境下如何浏览目录对话框的设计 116

实例2 Win 32内存映射文件的工作原理及使用方法 119

实例3 如何显示MRU(最近使用的)文件 122

实例4 实现Win32界面下的Visual C 串口通讯程序 124

实例5 如何编写文件分割工具 138

实例6 Visual C 中如何遍历整个目录树查找文件 143

实例7 Win98/95中如何利用剪贴板实现屏幕截词 145

实例8 删除目录及目录下所有文件与子目录 149

实例9 改变指定的文件和文件夹的属性 150

实例10 程序中如何用对话框的形式显示HTML文件 159

实例11 软件的加密方法 161

实例12 以不同的格式保存文件 163

实例13 在应用程序中创建快捷方式 163

实例14 在用户环境中确定系统显示元素的颜色 168

实例15 用程序取得CPU信息 168

第5章 系统 171

实例1 实现VxD与外界通信的所有接口 171

实例2 用Visual C 建立Windows 9X的注册表 176

实例3 在Visual C 中实现Win32全局钩子 180

实例4 实现Windows 95多线程间同步事件的控制 186

实例5 实现Windows 9x 的后台进程 190

实例6 如何查询和设置系统参数 196

实例7 使该线程在对话框退出时同时关闭 197

实例8 正确地在线程之间传送消息 199

实例9 如何用任务栏上的图标与用户交互 200

实例10 如何在Win32中管理虚拟内存 202

实例11 如何直接访问物理内存 203

实例12 如何启动和等待进程结束 207

实例13

如何让程序运行时在Windows“关闭程序”窗口中隐身 209

实例14 查询和设置系统参数 210

第6章 数据库 211

实例1 如何打开有密码保护的数据库 211

实例2 如何用Visual C处理Access中的位图数据 211

实例3 如何用MFC DAO查找 213

实例4 如何实现数据访问技术ADO/OLE DB 213

实例5 利用ODBC管理数据库 220

实例6 Visual C 中记录集与动态绑定方法是如何实现的 222

实例7 如何从数据库中读大于32Kbyte的内容 227

实例8 在Visual C 中MFC的大型数据文件处理方法 228

实例9 如何使用与操作Visual C 的数据库 229

实例10 如何实现ODBC中的同步与异步执行模式 231

实例11 用ADO连接Access数据库出错 233

实例12 打开有密码保护的数据库 234

第7章 网络 235

实例1 如何使用HTTP函数 235

实例2 如何实现服务端口测试程序的设计 238

实例3 如何实现ODBC中的同步与异步执行模式 242

实例4 如何编写用于串行通讯的程序 244

实例5 如何制做网页浏览器 249

实例6 如何实现Web搜索引擎设计 251

实例7 如何实现Win32下的几种串口通信编程 259

实例8 如何编写Proxy服务器 261

实例9 如何检知拨号上网IP地址 270

实例10 一个简单的Winsock网络应用程序设计 271

实例11 如何利用TCP socket来收送数据 278

实例12 利用Winsock所提供的函数来取得一些基本的网络数据 283

实例13 有哪些发展工具才能开发Winsock1.1的应用程序 290

实例14 如何实现Winsock函数 297

实例15 如何实现开发Windows Sockets通信应用程序 308

实例16 如何利用Win32的网络函数创建一个网络浏览器 312

实例17 清除历史记录函数 319

实例18 用TCP/IP的套接字开发网络通信程序 320

实例19 如何得到拨号网络传输速度 326

实例20 如何使用MFC编写FTP程序 334

实例21 怎样才能通过TIS代理连接 335

实例22 实现与 HTTP 服务器通话 335

实例23 用Activex实现串口通信 337

实例24 用集成环境开发Internet系统 338

实例25 如何创建ActiveX客户页面 339

实例26 连接和访问Intranet/Internet数据库 340

实例27 如何创建ActiveX服务器页面 340

实例28 如何用Socket接口实现网络异步通信 341

实例29 Winsock实现聊天室的程序设计 346

第8章 多媒体 350

实例1 如何实现DirectX技术 350

实例2 Windows98中渐变彩色文本是如何实现的 351

实例3 DirecX 6.0的新特征 356

实例4 如何实现Gif文档 357

实例5 如何实现JPEG压缩 358

实例6 在VC中如何显示GIF或JPG图像 369

实例7 如何实现MIDI. WAV及CD的播放 371

实例8 如何实现Windows下的动画特技 375

实例9 如何用VC抓取屏幕图像并压缩 378

实例10 在状态条中(CStatusbar Pane)加入Bitmap图 378

实例11 如何实现屏幕保护程序编程 381

实例12 如何实现DirectSound 389

实例13 如何显示256色位图 392

实例14 如何实现用OpenGL编程 395

实例15 如何实现播放WAV资源 405

实例16 如何用Visual C

5.0实现视频捕获编程 406

实例17 如何自制媒体播放器 410

实例18 如何实现DirectSound 413

第9章 进程 426

实例1 如何实现在MFC扩展DLL中输出对话框 426

实例2 关于调用约定的问题 428

实例3 调用FreeLibrary 迟迟不能返回 429

实例4 在DLL里面再调用DLL 429

实例5 取得硬盘的分区信息 429

实例6 怎么能让线程确保收到消息 429

实例7 如何实现几个应用程序之间的数据共享 429

实例8 写一个Dll里面有一个导出的函数 430

实例9 控制一个函数的执行时间 430

实例10 内核对象的伪句柄 430

实例11 怎样在主程序关闭的时候关闭未完成的线程 430

实例12 向对话框发送消息 431

实例13 在线程中怎样向对话框发送消息 432

实例14 想从DLL中加一个对话框资源,怎么让EXE调用呼出呢 432

实例15 多线程之间的通讯 433

实例16 Win2000中如何在任务管理器中不显示程序的线程 433

实例17 实现工作线程的登录 439

实例18 产生线程的问题 440

第10章 图形处理与算法 442

实例1 在VC中如何使用复数 442

实例2 OpenGL读取3Dmax数据 442

实例3 在内存的一块DC中放了一张图片, 然后得到DIB对象 442

实例4 CDC函数调用 442

实例5 断层剖面图 442

实例6 字符串加密和解密常用的简单方法 443

实例7 24位以上位图转换为2色位图的黑色, 其算法和源码 444

实例8 语音的录取. 播放 447

实例9 直接读取显存或系统内存内的数据, 实现截屏操作 447

实例10 用SetBitmapBits将内存区内的一组像素值赋给位图 448

实例11 保存在视图里画的图形 449

实例12 加载一幅位图作为背色 452

实例13 向ATL-COM对象传送一个数组 479

实例14 使用Visual C 中的STL 480

实例15 做一个绘制几何图形的控件 481

实例16 COM多线程部分的套件是怎样保证同步的 482

实例17 如何才能把自己做的ActiveX控件插到一个网页里 482

实例18 设计ActiveX控件时如何改变控件的初始大小 483

实例19 要做一个用于html的atl activex, 应该采用什么界面 483

实例20 如何在网页上实现ActiveX控件之间的通讯 484

实例21 如何在一个ATL对象中调用另外一个ATL对象和接口的方法和属性 484

实例22 如何把一段文字直接输出到一个word文件里面去 484

第11章 硬件 486

实例1 在debug下清掉CMOS密码 486

实例2 Explore被限定了初始访问地址,注册表不能编辑 486

实例3 一种电子贺卡的制作程序 486

实例4 控制鼠标在屏幕的任何位置单击 486

实例5 Visual C 中播放声音的方法 487

实例6 用低级音频api播放wav文件 491

实例7 串口和并口进行操作的中断机制 496

实例8 取得Windows的语言版本信息 496

实例9 开发输入法程序 502

实例10 Visual C 与计算机的USB. 串口打交道 504

实例11 在VC下更改系统变量PATH的值 504

实例12 得到机器的主硬盘序列号 506

实例13 用VC实现数据采集 508

实例14 Visual C 里检测有没有安装声卡驱动 508

第12章 界面 510

实例1 在对话框应用程序上动态的建立菜单和工具栏 510

实例2 用渐进色填充Dialog 512

实例3 在VC中自建操作BMP位图文件的类 514

实例4 启动程序时不建立子窗口 520

实例5 定制列表视 report style,full Row Select 的高亮选中条的字符和背景颜色 521

实例6 为什么我建的CDialogBar上所有按钮都是灰色的 522

实例7 如何在Edit Control中定时刷新数据的例子 522

实例8 捕捉方向键的消息 523

实例9 使鼠标点到对话框外时关闭对话框 524

实例10 点一下对话框外面的区域, 自动隐藏对话框 525

实例11 当把鼠标放在最小化按钮上时, 会出现一个“最小化”的框 527

实例12 用CListCtrl和CcomboBox实现文件列表的功能源码 527

实例13 希望页面没有太长时间的停顿 528

实例14 把控件编成一组一起控制 528

实例15 禁用菜单项pMenu->EnableMenuItem

529

实例16 使控件显示或不显示 529

实例17 定义并实现像VC那样具有打开方式的CFileDialog 529

实例18 使程序更加有观赏性的经验 530

实例19 在VC里实现QQ的界面 530

实例20 把程序中printf函数的数据直接输出到界面上 530

实例21 不规则窗口程序 531

实例22 Photoshop里的放大镜功能 531

实例23 把网上好的界面用到自己做的软件上面 532

实例24 关闭片头动画 532

实例25 CImageList的用法 532

实例26 在单文档程序中动态切换多个窗体 532

实例27 让Dialog的Button具有Bitmap 535

实例28 CBitmapButton的用法 536

实例29 在对话框中加入ToolBar 540

实例30 图标按钮 542

实例31 位图按钮 543

实例32 使用系统的颜色选择对话框 544

实例33 创建特定的字体 544

第13章 其他 546

实例1 数据类型转换的方法 546

实例2 实现C语言编程的排序方法 549

实例3 在状态条上显示当前时间 552

实例4 禁止工具条的工具提示 554

实例5 在代码中获取工具条和状态条的指针 554

实例6 在MFC加入“这是什么 ”的帮助提示 554

实例7 精通工具条 555

实例8 改变视窗的背景颜色 555

实例9 为MFC应用程序添加全屏幕显示功能 556

实例10 增强型的状态条 558

实例11 使用打印机 562

实例12 VxD在实时反病毒中的应用 569

实例13 递归查找目录树 572

实例14 用Visual C 和Visual Foxpro进行ActiveX数据通讯 573

实例15 实现视图创建和控制 576

实例16 实现鼠标趣味编程 577

实例17 改善Visual C 中的数值转换的不足 581

实例18 使Visual C 中程序自动运行 583