《C++ Builder 4高级编程实例精解》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:刘滨编著
  • 出 版 社:北京:国防工业出版社
  • 出版年份:2000
  • ISBN:7118023027
  • 页数:583 页
图书介绍:

第1章 C++Builder 4深入剖析 1

1.1 C++Builder——伟大的开发工具 3

1.2 VCL高级话题 6

1.2.1 深入TObject类 6

1.2.2 深入TApplication类 10

1.2.3 深入TForm类 13

1.2.4 TMetaClass和类引用 16

1.3 抽象数据类型 16

1.3.1 链表(TList) 17

1.3.2 字符串(AnsiString) 22

1.3.3 集合(Set) 23

1.3.4 流(TStream) 25

1.4 使用C++Builder 4的VCL增强 26

1.4.1 C++Builder 4的新特点 26

1.4.2 使用TActionList和TMonthCalender组件 29

1.4.3 停驻技术编程 32

1.4.4 动态数组 35

第2章 功能齐全的多文档书写器——高级文本处理 37

2.1 文本编辑组件的高级用法 39

2.1.1 TEdit组件和TMaskEdit组件 39

2.1.2 TMemo组件和TRichEdit组件 41

2.2.1 多文档接口与MDI应用程序 43

2.2 多文档界面(MDI)和多页面界面(MPI)技术 43

2.2.2 多页面界面MPI 44

2.3 实例创建分析 46

2.4 创建MDI的编辑环境 47

2.4.1 主窗体和子窗体界面 48

2.4.2 菜单融合处理和窗体布局控制 49

2.5 基本文本编辑功能的实现 51

2.5.1 文档的打开、存盘、关闭和打印 51

2.5.2 剪贴板编辑功能 54

2.6.1 字体和段落格式控制 56

2.6 字体格式控制、查找与替换 56

2.6.2 查找与替换 60

2.7 实现高级功能 64

2.7.1 历史文件列表菜单 64

2.7.2 当前光标所在行、列数的报告 67

2.7.3 实现MDI父窗体的背景贴图 68

第3章 完整的文件管理器——文件操作和文件流 70

3.1 C++Builder的文件操作支持 72

3.1.1 建立、打开和关闭文件 73

3.1.2 文件的读写操作 74

3.1.3 用于文件操作的可视化组件 77

3.2 实例创建分析 79

3.3 界面风格:TTreeView和TListView 80

3.3.1 树视图组件TTreeView 80

3.3.2 列表视图组件 83

3.3.3 创建范例程序界面 84

3.4 文件管理和浏览 85

3.4.1 初始化工作 85

3.4.2 树视图的组织和显示 86

3.4.3 列表视图的组织和显示 88

3.4.4 用户浏览命令的相应 92

3.5 实现文件操作功能 94

3.5.1 文件的拷贝、剪切、删除 95

3.5.2 Win32风格文件重命名的实现 97

3.5.3 文件属性的检视与修改 98

3.6 文件流和内存流 100

3.6.1 文件流(TFileStream类与THandleStream类) 100

3.6.2 内存流(TMemoryStream类) 101

3.6.3 其他流式对象 103

3.7 文件相关的高级话题 105

3.7.1 文件加锁和解锁 105

3.7.2 Shell API 107

第4章 可与ACDSee媲美的BCBSee32——深入图像文件编程 113

4.1.1 Windows图形设备接口 115

4.1 图像显示技术 115

4.1.2 TImage组件 116

4.2 现实图形对象 118

4.2.1 TGraphic类 118

4.2.2 TBitmap类 119

4.2.3 Tlcon类和TMetafile类 120

4.3 使用和控制JPEG格式图像 123

4.3.1 功能强劲的TJPEGImage类 123

4.3.2 TJPEGImage应用示例 125

4.4 实例创建分析 127

4.5.1 创建程序界面 128

4.5 创建程序界面及浏览窗体部分的实现 128

4.5.2 浏览系统(Browser)实现 129

4.5.3 预览显示处理 132

4.6 实现观察窗体部分 133

4.6.1 为图像量身定做窗体 133

4.6.2 Viewer窗体中的图像浏览、幻灯功能 135

4.6.3 全屏显示和放大、缩小显示 136

4.7 图像格式转换和图像打印 138

4.7.1 将图像转换为Bitmap格式 138

4.7.2 将图像转换为JPEG格式 140

4.7.3 图像打印输出 141

4.8.1 设置墙纸 143

4.8 实现特色功能 143

4.8.2 放大镜的实现 144

第5章 图像编辑软件BCB画板——数字图像处理和图像编辑 147

5.1 TCanvas画布类 149

5.1.1 TCanvas类的重要属性和方法 149

5.1.2 TPen、TBrush和TColor 151

5.1.3 重画问题 153

5.2 实例创建分析 154

5.3.1 创建应用程序界面 155

5.3 图像编辑程序框架 155

5.3.2 使用光标 156

5.3.3 工具箱和颜料盒的实现 158

5.4 图像绘制——画图功能的实现 159

5.4.1 铅笔、画刷和橡皮 160

5.4.2 颜料桶和喷枪 162

5.4.3 放大缩小图像、绘制文字 163

5.4.4 规则图形的绘制 164

5.5 区域选择和图像的剪贴、复制 168

5.5.1 区域选择的实现 168

5.5.2 应用剪贴板 169

5.6.1 新建、打开、存储文件 172

5.6 新建、打开、存储文件及简单图像处理 172

5.6.2 尺寸设置、反色及图像打印 174

5.7 图像处理高级话题 176

5.7.1 提升速度 176

5.7.2 图像色彩调整 179

第6章 多样Windows屏幕保护程序——动画技术与图形技巧显示 185

6.1 Windows动画技术 187

6.1.1 双缓冲区(Double Buffer) 187

6.1.2 TPaintBox组件和TTimer组件 187

6.1.3 生成高性能动画 188

6.1.4 掩图技术 191

6.2 实例创建分析 193

6.3 实现屏幕保护程序框架 194

6.3.1 获取并处理应用程序参数 194

6.3.2 消息映射 195

6.4 动画和特技显示 199

6.4.1 屏保的动画部分 199

6.4.2 技巧显示 203

6.4.3 音乐播放功能 207

6.5 屏保设置部分的实现 208

6.5.1 存取文件列表 209

6.5.2 使用注册表 209

6.6.1 桌面精灵动画 213

6.6 动画技术的其他话题 213

6.6.2 逐帧动画 215

6.6.3 多媒体定时器 216

6.6.4 高级动画 218

第7章 完美的多媒体播放器——深入多媒体技术 219

7.1 多媒体技术探秘 221

7.1.1 多媒体技术的核心 221

7.1.2 Windows操作系统的多媒体服务 221

7.1.3 C++Builder的多媒体编程 223

7.2 多媒体相关组件和多媒体编程 225

7.2.1 多媒体TMediaPlayer组件 225

7.2.2 动画组件TAnimate 228

7.2.3 多媒体编程的一般原则 229

7.3 实例创建分析 230

7.4 媒体播放部分的实现 231

7.4.1 基本媒体播放控制 231

7.4.2 视频播放相关处理 234

7.5 其他关键问题处理 236

7.5.1 数字显示实现——使用资源文件 236

7.5.2 播放时间进度显示 238

7.5.3 实现无标题面板的拖动 239

7.5.4 实现音量调整功能 240

7.6.1 TMediaPlayer组件 241

7.6 MCI与高级多媒体性能 241

7.6.2 命令消息接口与mciSendCommand语言 242

7.6.3 播放文件和录制声音 244

7.7 底层多媒体API 247

7.7.1 RIFF文件 247

7.7.2 使用低级API实现Wave播放 248

第8章 俄罗斯方块游戏——VCL游戏编程与实用技术 252

8.1 实例创建分析 254

8.2 实现俄罗斯方块程序的核心部分 256

8.2.1 程序策划 256

8.2.2 数据处理和定制窗体 257

8.3.1 核心工作模块 260

8.3 工作模块具体实现 260

8.3.2 其他问题 270

8.4 实用技巧 271

8.4.1 创建帮助系统 272

8.4.2 使用INI文件 277

8.4.3 溅出屏幕(Splash Screen) 279

8.5 为游戏程序增加手柄支持 281

第9章 快速文件处理工具——进程和多线程技术 285

9.1 进程和进程创建 287

9.1.1 进程存储 287

9.1.2 进程创建方法 288

9.1.3 后台进程:制作Windows 版的ARJ工具 290

9.2 Win32多线程技术 292

9.2.1 C++Builder中实现多线程 293

9.2.2 TThread类 294

9.3 实例创建分析 295

9.4 实现多线式文件处理工具的技术要点 296

9.4.1 主界面线程 296

9.4.2 查找线程 298

9.4.3 与VCL同步 300

9.4.4 线程的终止 301

9.5.1 优先级和调度 302

9.5 多线程调度和线程通信 302

9.4.5 拷贝线程 302

9.5.2 TEvent与线程通信 304

9.6 多线程高级话题 306

9.6.1 对线程计时 306

9.6.2 线程本地存储 307

9.6.3 线程同步问题 308

第10章 HTML浏览器——Internet相关技术 315

10.1 HTTP协议和HTML组件 317

10.1.1 使用HTML组件 317

10.1.2 使用NMHTTP组件 320

10.2.1 CoolBar工具栏 324

10.2 创建BCB WebBrowser浏览器程序 324

10.2.2 实现Web页的显示和浏览功能 327

10.2.3 实现辅助功能 330

10.3 BCB WebBrowser的第二版本 333

10.3.1 安装ActiveX控件 333

10.3.2 使用WebBrowser控件 334

10.4 文件传输协议和邮件协议编程 335

10.4.1 使用文件传输协议(FTP) 335

10.4.2 邮件协议和其他特定协议 339

第11章 网页留言簿系统——服务器端Web编程 341

11.1.1 使用PageProducer组件 343

11.1 生成HTML页面 343

11.1.2 在Web页发布数据库 345

11.2 创建动态Web内容 349

11.2.1 标准CGI编程 349

11.2.2 利用WebModules技术创建服务器程序 351

11.2.3 实现网站计数器程序 354

11.3 创建基于ISAPI的留言簿系统 356

11.3.1 ISAPI编程概述 357

11.3.2 在C++Builder中创建ISAPIDLL 358

11.4 实现留言簿填写模块 359

11.4.1 获取用户输入信息 359

11.4.2 与数据库连接 361

11.5 实现留言簿浏览模块 363

11.5.1 显示留言列表 364

11.5.2 显示留言簿详细内容 366

11.6 关于服务器端编程的进一步讨论 367

11.6.1 QueryTableProducer组件 367

11.6.2 在线考试/问卷系统 368

11.6.3 聊天室系统 369

第12章 网络五子棋——WinSock编程 371

12.1 WinSock编程概述 373

12.1.3 操作Socket对象传输数据 374

12.1.1 建立服务器端Socket 374

12.1.2 建立客户端Socket 374

12.2 实例创建分析 377

12.3 实现网络五子棋程序 378

12.3.1 游戏前期工作 379

12.3.2 实现联机游戏系统 382

12.3.3 简单的辅助功能 388

12.4 WinSock编程高级话题 388

12.4.1 流类数据传输 388

12.4.2 利用WinSock定制协议 389

12.5 使用TPowerSock组件类 393

12.4.3 在阻塞状态下传输数据 393

12.5.1 TPowerSock组件 394

12.5.2 TNMStrm和TNMStrmServ组件 395

第13章 图像时钟组件——创建VCL组件 398

13.1 C++Builder组件和组件包 400

13.1.1 扩展VCL组件 400

13.1.2 创建组件的原则 400

13.1.3 组件包 401

13.1.4 创建一个简单的组件 401

13.2 组件编程 405

13.2.1 创建组件的起点 405

13.2.2 链接图像组件 407

13.2.3 编写组件代码 409

13.2.4 创建事件 411

13.3 创建图像时钟组件 413

13.3.1 为组件增加枚举类型属性 416

13.3.2 绘制时钟 417

13.3.3 增加TPersistent属性 421

13.3.4 增加新创建的事件 422

13.3.5 组件面板位图 424

13.3.6 测试TCoolClock组件 425

13.4 创建非可视化组件 426

13.4.1 创建TOpenDirDialog组件 427

13.4.2 使用非可视化组件 429

第14章 系统环境监视程序——DLL及应用Windows API编程 431

14.1 关于DLL 433

14.1.1 在C++Builder中创建DLL 434

14.1.2 使用DLL实现窗体重用 436

14.2 实例创建分析 438

14.2.1 理解Windows API 438

14.2.2 程序分析 439

14.3 编写任务栏指示区图标支持 440

14.4 利用API实现特殊风格的标题栏 443

14.4.1 自绘标题栏 443

14.4.2 实现标准标题栏功能 446

14.5 窗口与程序 447

14.5.1 获得当前所有窗口 447

14.5.2 动态汉化窗口菜单 449

14.5.3 获得当前激活的进程 452

14.5.4 查看/删除系统启动程序 454

14.5.5 杀除进程 456

14.6 系统与设备 457

14.6.1 获取和设置驱动器信息 458

14.6.2 获取内存资源信息 461

14.6.3 获取设备信息与动态调整显示 463

14.6.4 获取和设置系统环境变量 466

第15章 BCB抓图大师——高级DLL技术和钩子函数 468

15.1 DLL彻底研究 470

15.1.1 动态加载DLL 470

15.1.2 DLL入口点及生存周期 472

15.2 插件(Plug-In)技术 474

15.2.1 插件技术分析 474

15.2.2 插件程序实例 475

15.3 实例创建分析 479

15.4 钩子(Hook)函数 480

15.4.1 Windows的钩子函数 480

15.4.2 使用钩子函数的问题 482

15.4.3 键盘钩子 483

15.5 进程间数据共享 486

15.5.1 利用内存映像文件共享数据 487

15.5.2 在DLL中实现存取全局内容代码 488

15.6 截图程序的具体实现 490

15.6.1 全局存取内存区域的数据组织 490

15.6.2 抓图设置处理 493

第16章 COM对象、自动化和XCoolClock控件——组件对象模型(COM) 495

16.1 理解COM接口及其实现 497

16.1.1 关于COM基本概念 497

16.1.2 在DLL实现类 499

16.2 实现COM对象 502

16.2.1 COM的服务程序类型 503

16.2.2 创建COM对象 503

16.2.3 创建客户程序 508

16.3 几个关键问题 510

16.3.1 GUID、CLSID和IID 510

16.3.2 IUnknown接口 511

16.3.3类工厂(ClassFactory) 512

16.4 IDispatch、双重接口及dispinterface 512

16.4.1 创建Automation对象 512

16.4.2 创建调用Automation对象的客户程序 516

16.4.3 IDispatch和双重接口 520

16.5 实现Word和Excel自动化 521

16.5.1 使用Variant进行自动化 522

16.5.2 自动化Excel 526

16.5.3 内部自动化应用程序 529

16.6 Internet Explorer控件的高级用法 532

16.6.1 类型库(Type Library) 532

16.6.2 BCB WebBrowser的第三版本 534

16.7 AtcriveX技术和创建ActiveX控件 536

16.7.1 创建TCoolClock和ActiveX版本 537

16.7.2 为ActiveX控件添加属性 540

16.7.3 为ActiveX控件编写属性页 542

16.7.4 ActiveForm方法 544

第17章 DirectX下的Block游戏——DirectX编程 548

17.1 DirectX技术及DirectX编程概述 550

17.1.1 DirectX的组成 550

17.1.2 DirectX编程方式 551

17.2 使用DirectDraw 552

17.2.1 强劲的DirectDraw技术 552

17.2.2 建立简单的DirectDraw程序 552

17.2.3 DirectDraw编程问题 556

17.3 实例创建分析 560

17.3.2 处理位图资源 561

17.3.1 程序架构 561

17.3.3 Block工程说明 562

17.4 具体实现Block游戏 562

17.4.1 深入DirectDraw:调色板和位图对象 563

17.4.2 构造TRing类 绘制DirectDraw位图 565

17.4.3 游戏的启动部分 568

17.4.4 游戏进行部分 569

17.4.5 实现规则 574

17.4.6 最后的工作——释放对象 576

17.5 DirectX技术的其他部分 578

17.5.1 使用Direct3D 578

17.5.2 使用DirectSound 581