| 作者 |
| Kate Gregory |
| 丛书名 |
| 特版精品系列 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111070078 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 这是一本介绍如何使用Visual C++6.0的书,它将详细地告诉你如何使用Visual C++建立32位应用程序,包括数据库应用程序、Internet应用程序以及ActiveX应用程序。 本书包括第1章到第28章以及附录部分。每一章都将介绍一个重要的编程任务,或两个紧密相关的任务(如创建任务栏,或为应用程序增加Help功能)。在每一章中,详细的指导会告诉你如何创建一个或几个可运行的应用程序。本书的重点内容包括对话框与控件、消息和命令、视图/文档模型、在屏幕上绘图、打印、持久性和文件I/O、ActiveX编程、Internet编程、数据库访问、高级教材等。 本书适合于Visual C++6.0的开发人员,尤其对具有Visual C++编程经验的程序员来说具有非常好的参考价值。 |
| 目录 |
| 目 录 译者序 前言 第一部分 开始学习 第1章 创建第一个Windows应用程序 1 1.1 生成一个Windows应用程序 1 1.1.1 选择文档界面风格 2 1.1.2 数据库 3 1.1.3 复合文档支持 4 1.1.4 外观和其他选项 5 1.1.5 其他选项 7 1.1.6 文件名和类名 7 1.1.7 生成应用程序 8 1.1.8 试验应用程序 8 1.2 生成一个基于对话框的应用程序 10 1.3 生成DLL、控制台应用程序及其他 13 1.3.1 ATL COM AppWizard 13 1.3.2 Custom AppWizard 13 1.3.3 Database Project 13 1.3.4 DevStudio Add-In Wizard 13 1.3.5 ISAPI Extension Wizard 14 1.3.6 Makefile 14 1.3.7 MFC ActiveX ControlWizard 14 1.3.8 MFC AppWizard(DLL) 14 1.3.9 Win32 Application 14 1.3.10 Win32 Console Application 14 1.3.11 Win32 Dynamic Link Library 14 1.3.12 Win32 Static Library 15 1.4 在应用程序向导中改变选择项目 15 1.5 理解应用程序向导所生成的代码 15 1.5.1 单文档界面应用程序 15 1.5.2 其他文件 20 1.5.3 理解多文档界面应用程序代码 20 1.5.4 理解基于对话框的应用程序代码 23 1.6 回顾AppWizard的选择项和本章 小结 25 第2章 对话框和控件 27 2.1 理解对话框 27 2.2 创建对话框资源 27 2.2.1 定义对话框和控件ID 29 2.2.2 创建示例对话框 29 2.3 编写对话框类 30 2.4 使用对话框类 32 2.4.1 显示对话框 32 2.4.2 屏幕之后 34 2.4.3 使用列表框控件 35 2.4.4 使用单选按钮 38 第3章 消息和命令 40 3.1 理解消息机制 40 3.2 理解消息循环 41 3.3 消息映射 43 3.3.1 消息映射宏 43 3.3.2 消息映射如何工作? 44 3.3.3 MFC代码捕获的消息 45 3.4 怎样利用ClassWizard捕获消息 46 3.4.1 ClassWizard对话框 46 3.4.2 添加Windows消息处理对话框 47 3.4.3 捕获消息的类 48 3.5 识别消息 48 3.6 理解命令 49 3.7 理解命令更新 50 3.8 怎样利用ClassWizard捕获命令与命令 更新 51 第二部分 从应用程序得到信息 第4章 文档和视图 53 4.1 理解文档类 53 4.2 理解视图类 55 4.3 创建Rectangles应用程序 57 4.4 其他视图类 61 4.5 文档模板、视图和框架窗口 62 第5章 在屏幕上绘图 64 5.1 理解设备环境 64 5.2 介绍Paintl应用程序 65 5.3 创建Paintl应用程序 66 5.3.1 在MFC程序中画图 66 5.3.2 切换显示 67 5.3.3 使用字体 69 5.3.4 改变窗口的大小和位置 72 5.3.5 使用画笔 73 5.3.6 使用画刷 74 5.4 滚动窗口 77 5.4.1 创建Scroll应用程序 77 5.4.2 添加代码增加行 80 5.4.3 添加代码减少行 80 第6章 打印和打印预览 83 6.1 理解MFC的基本打印和打印预览 83 6.2 缩放 85 6.3 打印多页 86 6.3.1 设置原点 91 6.3.2 MFC和打印 92 第7章 持久性和文件I/O 95 7.1 对象的持久性 95 7.2 File Demo应用程序 95 7.2.1 文档类的回顾 95 7.2.2 创建File Demo应用程序 96 7.3 创建一个持久类 99 7.3.1 File Demo 2 应用程序 100 7.3.2 CMessages类一览 100 7.3.3 在程序中使用CMessages类 103 7.4 直接读写文件 104 7.5 创建自己的CArchive对象 106 7.6 理解注册 106 7.6.1 注册是如何设置的 107 7.6.2 预定义的键 108 7.6.3 在MFC应用程序中使用“注册” 108 7.6.4 简单的应用程序 109 第8章 创建一个完整的应用程序: ShowString 110 8.1 建立显示字符串的应用程序 110 8.1.1 用AppWizard创建一个程序的 空壳 110 8.1.2 显示字符串 111 8.2 建立ShowString菜单 113 8.3 创建ShowString对话框 116 8.3.1 ShowString的About对话框 116 8.3.2 ShowString的Options对话框 117 8.4 使菜单工作 118 8.4.1 对话框类 118 8.4.2 捕获消息 121 8.5 使对话框工作 122 8.6 向Options对话框添加外观选项 123 8.6.1 改变Options对话框 123 8.6.2 在对话框类中增加成员变量 124 8.6.3 在文档中增加成员变量 125 8.6.4 改变OnToolsOptions( ) 126 8.6.5 改变OnDraw( ) 127 第三部分 改善用户界面 第9章 状态栏和工具栏 129 9.1 使用工具栏 129 9.1.1 删除工具栏按钮 129 9.1.2 添加按钮到工具栏 131 9.1.3 CToolBar类的成员函数 134 9.2 使用状态栏 135 9.2.1 创建新的命令ID 136 9.2.2 创建缺省字符串 137 9.2.3 添加ID到指示器数组 138 9.2.4 创建窗格的命令更新处理程序 138 9.2.5 设置状态栏的外观 140 9.3 使用Rebars 142 第10章 常用控件 145 10.1 进度条控件 147 10.1.1 创建进度条 147 10.1.2 初始化进度条 148 10.1.3 操作进度条 148 10.2 滑块控件 149 10.2.1 创建滑块 149 10.2.2 初始化滑块 150 10.2.3 操作滑块 150 10.3 上下控件 151 10.4 图像列表控件 152 10.4.1 创建图像列表 153 10.4.2 初始化图像列表 153 10.5 列表视图控件 154 10.5.1 创建列表视图 156 10.5.2 创建列表视图的列 157 10.5.3 创建列表视图的项目 158 10.5.4 操作列表视图 159 10.6 树形视图控件 163 10.6.1 创建树形视图 164 10.6.2 创建树形视图的项目 165 10.6.3 操作树形视图 167 10.7 Rich Edit控件 168 10.7.1 创建Rich Edit控件 168 10.7.2 初始化Rich Edit控件 169 10.7.3 操作Rich Edit控件 169 10.8 IP地址控件 172 10.9 日期提取(Date Picker)控件 172 10.10 月历(Month Calendar)控件 174 10.11 卷动视图 174 第11章 帮助 176 11.1 不同类型的Help 176 11.1.1 获得Help 176 11.1.2 显示Help 177 11.1.3 使用Help 178 11.1.4 编写Help程序 179 11.2 帮助系统的组件 179 11.3 AppWizard支持的Help 180 11.4 设计你自己的Help的方法 181 11.5 命令Help的编程 182 11.6 上下文Help的编程 183 11.7 编写Help文本 186 11.7.1 更改占位符字符串 187 11.7.2 添加主题 189 11.7.3 更改“How to Modify Text”主题 192 11.8 Contents的调整 193 第12章 属性页和属性表 195 12.1 属性表介绍 195 12.2 创建属性表演示应用程序 196 12.2.1 创建基本文件 196 12.2.2 编辑资源 196 12.2.3 添加新资源 199 12.2.4 建立资源和类的关联 200 12.2.5 创建属性表类 201 12.3 运行属性表演示应用程序 204 12.4 在应用程序中添加属性表 205 12.5 把属性表变成Wizard(向导) 205 12.5.1 运行Wizard Demo应用程序 206 12.5.2 创建Wizard页 207 12.5.3 显示Wizard 207 12.5.4 设置Wizard的按钮 208 12.5.5 响应Wizard的按钮 208 第四部分 ActiveX应用程序与ActiveX控件 第13章 ActiveX概念 211 13.1 ActiveX的目的 211 13.2 对象链接 213 13.3 对象嵌入 214 13.4 容器和服务器 215 13.5 面向更加直观的用户界面 216 13.6 组件对象模型 217 13.7 自动化 219 13.8 ActiveX控件 220 第14章 创建ActiveX容器应用程序 221 14.1 更改ShowString 221 14.1.1 AppWizard生成ActiveX容器 代码 221 14.1.2 恢复ShowString的功能 235 14.2 移动、改变大小和跟踪 236 14.3 处理多个对象和对象选择 239 14.3.1 击中测试 239 14.3.2 画多个项目 240 14.3.3 处理单击 241 14.3.4 处理双击 243 14.4 实现拖放 244 14.4.1 实现拖动源 244 14.4.2 实现释放目标 245 14.4.3 将视图作为释放目标注册 246 14.4.4 建立函数框架并添加成员函数 246 14.4.5 OnDragEnter() 247 14.4.6 OnDragOver() 249 14.4.7 OnDragLeave() 251 14.4.8 OnDragDrop() 251 14.4.9 测试和拖动目标 253 14.5 删除对象 253 第15章 创建ActiveX服务器应用程序 255 15.1 给ShowString增加服务器功能 255 15.1.1 AppWizard的服务器示例程序 255 15.1.2 再次显示字符串 269 15.2 既是服务器又是容器的应用程序 273 15.2.1 创建另一个版本的ShowString 273 15.2.2 嵌套和递归问题 273 15.3 ActiveX文档 274 15.3.1 ActiveX 文档做些什么 275 15.3.2 使ShowString成为ActiveX文档 服务器 276 第16章 创建自动服务器 279 16.1 再次设计ShowString 279 16.1.1 AppWizard的自动模板 279 16.1.2 揭示属性 282 16.1.3 OnDraw()函数 286 16.1.4 显示窗口 288 16.2 在Visual Basic中创建控制器应用 程序 290 16.3 类型库和ActiveX实质 292 第17章 创建ActiveX控件 295 17.1 创建一个骰子滚动控件 295 17.1.1 创建控件外壳 295 17.1.2 AppWizard的代码 297 17.1.3 设计控件 299 17.2 显示当前值 299 17.2.1 添加属性 299 17.2.2 编写绘图代码 301 17.3 响应鼠标单击和滚动骰子 303 17.3.1 通知容器 303 17.3.2 滚动骰子 305 17.4 创建更好的用户界面 306 17.4.1 位图图标 306 17.4.2 显示圆点 307 17.5 生成属性表 310 17.5.1 数字与圆点 310 17.5.2 用户选定的颜色 314 17.6 按要求滚动 319 17.7 将来的改进 319 17.7.1 允许与禁止滚动 319 17.7.2 具有与众不同的面数的骰子 320 17.7.3 骰子数组 320 第五部分 Internet编程 第18章 Sockets、MAPI和Internet 321 18.1 使用Windows Sockets 321 18.2 使用消息收发API(MAPI) 324 18.2.1 何为MAPI 324 18.2.2 Windows 95标识要求 325 18.2.3 MAPI的高级应用 326 18.3 使用WinInet类 328 18.4 使用Internet服务器API(ISAPI)类 329 第19章 用WinInet类进行Internet编程 333 19.1 设计Internet查询程序 333 19.2 创建查询对话框 334 19.3 查询HTTP站点 336 19.4 查询FTP站点 341 19.5 查询Gopher站点 342 19.6 使用Gopher发送Finger查询 345 19.7 使用Gopher发送一个Whois查询 347 19.8 未来的工作 349 第20章 创建一个Internet ActiveX控件 351 20.1 在Microsoft Internet Explorer Web页中 嵌入ActiveX控件 351 20.2 在Netscape Navigator Web页中嵌入 ActiveX控件 354 20.3 为了改编和初始化安全而注册 355 20.4 ActiveX控件与Java Applets的选取 358 20.5 使用AppWizard创建更快的ActiveX 控件 359 20.6 利用异步属性提高控件的加载速度 363 20.6.1 属性 363 20.6.2 使用BLOB 364 20.6.3 修改Dieroll 365 20.6.4 测试和调试Dieroll 370 第21章 活动模板库 372 21.1 为什么使用ATL 372 21.2 使用APPWizard入门 373 21.3 使用Object Wizard 373 21.3.1 在项目中添加一个控件 374 21.3.2 命名控件 374 21.3.3 设置控件属性 374 21.3.4 支持Stock属性 376 21.4 给控件添加属性 377 21.4.1 由Object Wizard生成的代码 377 21.4.2 添加ReadyState Stock属性 379 21.4.3 增加定制属性 379 21.4.4 初始化属性 381 21.4.5 添加异步属性 382 21.5 绘制控件 385 21.6 持久性和属性页 389 21.6.1 添加属性页 390 21.6.2 连接属性页到CDieRoll 393 21.6.3 在属性包中的持久性 393 21.7 在Control Pad中使用控件 393 21.8 增加事件 394 21.8.1 给事件接口添加方法 394 21.8.2 实现IConnectionPoint接口 395 21.8.3 触发Click事件 395 21.8.4 触发ReadyStateChange事件 396 21.9 暴露DoRoll()函数 397 21.10 Init Safe和Script Safe的注册 398 21.11 准备在设计模式中使用的控件 398 21.12 最小化可执行文件大小 399 21.13 在Web页中使用控件 401 第六部分 高级编程技术 第22章 数据库访问 403 22.1 理解数据库的概念 403 22.1.1 使用平面数据库模型 403 22.1.2 使用关系数据库模型 404 22.1.3 数据库访问 405 22.1.4 Visual C++ ODBC类 405 22.2 创建ODBC数据库应用程序 406 22.2.1 注册数据库 406 22.2.2 创建基本的Employee应用程序 408 22.2.3 创建数据库显示 411 22.2.4 添加和删除记录 413 22.2.5 OnRecordAdd函数分析 418 22.2.6 OnMove函数分析 418 22.2.7 OnRecordDelete()函数分析 419 22.2.8 排序与过滤 419 22.2.9 OnSortDept()函数分析 424 22.2.10 DoFilter()函数分析 424 22.3 在ODBC与DAO之间作出选择 424 22.4 OLE DB 426 第23章 最新的企业版 427 23.1 什么是企业版 427 23.2 理解SQL 427 23.3 在C++中使用SQL操作数据库 428 23.4 开发发布应用程序 429 23.4.1 建立Data Source 429 23.4.2 创建应用程序外壳 432 23.4.3 建立数据连接 434 23.4.4 使用查询设计器 436 23.4.5 存储过程 437 23.4.6 编写新的存储过程 439 23.4.7 存储过程与C++代码的连接 440 23.5 使用数据库 443 23.5.1 数据库设计器 443 23.5.2 数据库图表 444 23.6 理解Microsoft事务处理服务器 445 23.7 使用Visual SourceSafe 446 第24章 改进应用程序性能 448 24.1 使用ASSERT和TRACE防止错误 448 24.1.1 ASSERT:检测逻辑错误 448 24.1.2 TRACE:隔离程序中存在问题的 区域 449 24.2 增加只调试特性 450 24.3 防止内存泄漏 451 24.3.1 内存泄漏的常见原因 451 24.3.2 调试使用new和delete的代码 453 24.3.3 自动指针 454 24.4 通过优化使代码效率更高 455 24.5 利用配置文件找到瓶颈 456 第25章 使用Galiery和自己的AppWizard 实现重用 457 25.1 编写可重用代码的优点 457 25.2 使用Component Gallery 457 25.2.1 向Gallery中添加一个组件 458 25.2.2 在用户项目中使用Gallery组件 459 25.2.3 开发Gallery 460 25.3 定制AppWizard简介 460 25.4 小结 463 第26章 异常和模板 464 26.1 异常 464 26.1.1 简单的异常处理 465 26.1.2 异常对象 466 26.1.3 放置catch块 467 26.1.4 处理多种类型的异常 471 26.1.5 旧的异常机制 473 26.2 使用模板 473 26.2.1 模板介绍 473 26.2.2 创建函数模板 473 26.2.3 创建类模板 475 26.3 标准模板库 479 26.3.1 管理指针模板:auto_ptr 479 26.3.2 其他有用的STL模板 481 26.4 名字空间 481 26.4.1 定义一个名字空间 481 26.4.2 名字空间范围确定 482 26.4.3 未命名的名字空间 483 26.4.4 名字空间别名 484 第27章 Windows线程的多任务处理 485 27.1 简单线程 485 27.2 线程通信 488 27.2.1 利用全局变量通信 489 27.2.2 利用用户定义的消息通信 490 27.2.3 利用事件对象通信 492 27.3 使用线程同步 494 27.3.1 使用临界区 494 27.3.2 使用互斥 499 27.3.3 使用信号量 500 第28章 未来的开发方法 504 28.1 创建控制台应用程序 504 28.1.1 创建控制台可执行程序 504 28.1.2 编写一个面向对象的控制台 应用程序 505 28.1.3 搭架起离散的算法 507 28.2 创建并使用一个32位的动态 链接库 507 28.2.1 创建32位DLL 512 28.2.2 使用32位DLL 514 28.3 发送消息和命令 515 28.4 软件的国际化发展趋势 517 第七部分 附 录 A C++回顾和面向对象的概念 519 B Windows编程回顾以及CWnd内幕 533 C Developer Studio的界面、菜单和 工具栏 542 D 调试 585 E MFC宏和全局变量 598 F 有用的类 605 |