| 作者 |
| Eugene Olafsen等 |
| 丛书名 |
| 软件开发技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111077299 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书是讲述用Visual C++进行MFC编程的专著,内容包括MFC编程的基本概念、MFC的基本结构、使用MFC进行Windows应用程序和数据库的编程、网络编程的基本方法,深入浅出、细致周到,可供中高级编程人员参考。附带光盘包括了本书所有实例的源代码,可以用于实际编程。 |
| 目录 |
| 目 录译者序 前言 第一部分 MFC概述 第1章 MFC的结构 1 1.1 MFC的发展简史 1 1.2 MFC类的层次结构 4 1.2.1 CObject 4 1.2.2 CCmdTarget 8 1.2.3 CWinThread 11 1.2.4 CWinApp 14 1.2.5 CWnd 18 1.2.6 CFrameWnd 23 1.2.7 CView 24 1.2.8 CDocument 25 1.3 小结 27 第2章 MFC对话框、控件和数据的 交互操作 29 2.1 创建应用程序 29 2.1.1 启动和使用MFC AppWizard 29 2.1.2 AppWizard生成的代码 31 2.2 修改应用程序 33 2.2.1 添加对话框控件 33 2.2.2 添加初始化信息 38 2.2.3 使用对话框控件 39 2.3 工具提示 40 2.3.1 激活工具提示 41 2.3.2 显示工具提示文本 41 2.4 对话框数据交换 42 2.4.1 标准DDX 42 2.4.2 UpdateData 42 2.5 使用标准对话框 43 2.5.1 文件打开/保存对话框 43 2.5.2 颜色选择对话框 43 2.5.3 字体选择对话框 44 2.5.4 打印配置对话框 44 2.6 小结 45 第3章 Windows的常用控件 46 3.1 常用控件的初始化和用法 46 3.2 用于Windows常用控件的通知 47 3.2.1 通知消息的结构 47 3.2.2 通知进程概述 48 3.2.3 更好的通知消息处理方案 48 3.2.4 用ON_NOTIFY_RANGE 设定通知范围 49 3.3 热键控件:CHotKeyCtrl类 49 3.3.1 CHotKeyCtrl类的方法 50 3.2.2 创建CHotKeyCtrl对象并 对它进行初始化 50 3.3.3 使用热键控件 50 3.4 微调控件:CSpinButtonCtrl类 51 3.4.1 微调控件的样式 52 3.4.2 CSpinButtonCrtl消息 52 3.4.3 CSpinButtonCtrl类的方法 52 3.4.4 创建微控件并对它初始化 53 3.4.5 示例程序:SPIN 1 53 3.5 滑块控件:CSliderCtrl 56 3.5.1 滑块控件的样式 56 3.5.2 CSliderCtrl消息 57 3.5.3 CSliderCtrl类的方法 58 3.5.4 创建滑块控件并对它进行 初始化 59 3.5.5 滑块控件的示例程序SLIDER1 60 3.5.6 示例程序SLIDER1 61 3.6 进度栏控件:CProgressCtrl类 63 3.6.1 CProgressCtrl类的方法 63 3.6.2 创建CProgressCtrl对象并对它 初始化 64 3.6.3 使用进度栏控件 64 3.7 图形列表:CImageList类 65 3.7.1 CImageList类的方法 65 3.7.2 创建CImageList控件并对它 初始化 66 3.8 列表视图控件:CListCtrl类 67 3.8.1 列表视图控件的样式 68 3.8.2 图形列表与列表视图控件 69 3.9 列表视图项目和子项目 69 3.9.1 列表视图通知消息 70 3.9.2 创建CListCtrl对象并对它 进行初始化 71 3.9.3 使用列表视图控件 71 3.10 树状视图控件:CTreeCtrl类 73 3.10.1 树状视图控件的样式 73 3.10.2 树状视图通知消息 74 3.10.3 CTreeCtrl类的方法 74 3.10.4 创建树状视图控件并对它 进行初始化 75 3.10.5 使用CTreeCtrl对象 76 3.10.6 示例程序TREELIST.EXE 76 3.11 选项卡控件:CTabCtrl类 77 3.11.1 选项卡控件的样式 77 3.11.2 选项卡控件的通知消息 78 3.11.3 CTabCtrl类的方法 78 3.11.4 选项卡项目的代码结构 79 3.11.5 创建选项卡控件 79 3.11.6 使用选项卡控件 80 3.12 动画控件:CAnimateCtrl类 81 3.12.1 动画控件的样式 82 3.12.2 动画控件的通知消息 82 3.12.3 CAnimateCtrl类的方法 82 3.12.4 创建动画控件 83 3.12.5 使用动画控件 83 3.13 多信息文本编辑控件: CRichEditCtrl类 83 3.13.1 多信息文本编辑控件的 窗口样式 85 3.13.2 字符格式的结构 85 3.13.3 段落格式的结构 86 3.13.4 CRichEditCtrl类的方法 87 3.13.5 CRichEditCtrl与文本相关 的方法 88 3.13.6 CRichEditCtrl的文本选定方法 88 3.13.7 CRichEditCtrl的文本格式化 方法 88 3.13.8 CRichEditCtrl的编辑方法 89 3.13.9 CRichEditCtrl的剪贴板方法 89 3.13.10 CRichEditCtrl的通用方法 89 3.13.11 创建多动能编辑控件 90 3.13.12 使用多信息文本编辑控件 90 3.14 小结 91 第4章 画图、设备环境、位图与字体 92 4.1 设备环境 92 4.2 图形设备界面 92 4.3 MFC设备环境的类 93 4.3.1 基类CDC 94 4.3.2 使用CPaintDC类进行绘图 95 4.3.3 用CClientDC类管理客户 程序区域 97 4.3.4 用CWindowDC类管理图 文框窗口 98 4.4 Windows的图形对象 99 4.4.1 画笔:CPen类 100 4.4.2 画刷:CBrush类 101 4.4.3 字体:CFont类 102 4.4.4 位图:CBitmap类 102 4.4.5 调色板:CPalette类 102 4.4.6 区域:CRgn类 102 4.5 GDI坐标系 103 4.6 矢量图形 104 4.6.1 绘图模式 105 4.6.2 线条与折线 107 4.6.3 矩形 110 4.6.4 区域 112 4.6.5 多边形 113 4.6.6 椭圆 113 4.6.7 贝济埃曲线 115 4.7 字体与文本 117 4.7.1 字体特征 117 4.7.2 TEXTMETRIC 结构 118 4.7.3 LOGFONT结构 120 4.7.4 创建字体 121 4.7.5 绘制文本 123 4.8 示例程序:矢量图形和文本方法 124 4.9 光栅图形 125 4.9.1 有名的光栅操作 125 4.9.2 位图 125 4.9.3 随设备而定的位图 126 4.9.4 不受设备限制的位图 127 4.9.5 CBitmap类 127 4.9.6 传送和伸展位图 128 4.10 位图资源 129 4.10.1 资源附加给可执行文件 129 4.10.2 从可执行文件中获取图形资源 130 4.11 示例程序:介绍位图资源 131 4.12 小结 134 第5章 创建自定义控件 136 5.1 Windows类与C++类 136 5.2 用于核实信息的编辑控件 137 5.3 时钟静态控件 138 5.3.1 控件的规格 139 5.3.2 画钟面 140 5.3.3 确定指针的位置 141 5.3.4 画指针 142 5.3.5 设置时间 143 5.3.6 建立标准控件的子类时 出现的向题 144 5.4 超级链接控件 144 5.4.1 实现方法 146 5.4.2 字体的处理 147 5.4.3 画窗口 148 5.4.4 控制光标 149 5.4.5 鼠标输入 150 5.4.6 键盘输入 152 5.4.7 运行超级链接 153 5.5 高级自定义控件 154 5.5.1 建立子类时的局限性 154 5.5.2 通知消息 155 5.5.3 将资源编辑器用于自定义类 156 5.6 小结 156 第6章 MFC应用程序对象、消息的 传送和空闲处理 157 6.1 MFC应用程序对象 157 6.1.1 CWinApp和应用程序的寿命 158 6.1.2 CWinApp数据成员 159 6.1.3 CWinApp的成员函数 162 6.1.4 InitInstance—特定应用程序的 初始化 162 6.1.5 InitInstance中的函数 165 6.1.6 对OLE容器的支持 165 6.1.7 Windows NT 3.5的3D外观 165 6.1.8 注册表的使用 166 6.1.9 最近使用的文件列表 166 6.1.10 SDI和MDI文档/视图 166 6.1.11 创建主图文框窗口 167 6.1.12 支持Automation 167 6.1.13 支持多信息文本编辑控件 168 6.1.14 命令行的处理 168 6.2 消息传送、消息表和消息类别 169 6.2.1 消息传送 169 6.2.2 消息表 171 6.3 空闲处理 173 6.3.1 OnIdle 173 6.3.2 为对话框进行空闲处理 175 6.4 闪现屏幕组件 176 6.5 小结 177 第二部分 文档、视图和使用它们 的应用程序 第7章 文档/视图的结构 179 7.1 文档、图文框和视图 179 7.2 创建新文档 181 7.2.1 打开新文件 183 7.2.2 单个文档模板与多个文档模板 185 7.3 视图 185 7.3.1 CView类 185 7.3.2 CScrollView类 185 7.3.3 CFormView类 186 7.3.4 数据库视图类 186 7.3.5 控件视图 186 7.3.6 改变SDI中的视图 189 7.3.7 使用MDI 193 7.4 小结 195 第8章 扩展用户界面 196 8.1 响应用户的输入 196 8.1.1 键盘消息 196 8.1.2 处理键盘消息 197 8.1.3 鼠标消息 198 8.1.4 处理鼠标消息 200 8.2 用户界面与AppWizard 201 8.3 扩展菜单 202 8.3.1 获取菜单和弹出式菜单 202 8.3.2 增加菜单项 202 8.3.3 使用浮动的弹出式菜单 203 8.4 将控件栏投入使用 204 8.4.1 使用工具栏和复合工具栏 205 8.4.2 使用状态栏 208 8.4.3 显示和隐藏控件栏 209 8.4.4 支持工具提示 210 8.5 更新用户界面 211 8.6 属性表和向导 212 8.6.1 MFC对属性表和向导的 支持特性 213 8.6.2 创建简单的向导 215 8.7 分割视图 223 8.8 小结 224 第9章 打印 225 9.1 打印的基本概念 225 9.2 用MFC进行打印 225 9.2.1 在视图中打印 226 9.2.2 CPrintInfo对象 227 9.2.3 打印菜单命令 228 9.3 打印与GDI映像模式 229 9.4 所见即所得的打印方式 230 9.4.1 应用程序的资源 230 9.4.2 应用程序类 232 9.4.3 视图类 232 9.5 文档的分页 236 9.5.1 在页数已知的情况下打印文档 236 9.5.2 在页数未知的情况下打印文档 237 9.5.3 打印页号 238 9.6 停止和取消打印作业 239 9.6.1 用OnPrepareDC ()函数停止 打印作业 239 9.6.2 用OnPrint ()函数停止打印作业 240 9.7 小结 240 第三部分 MFC和COM编程 第10章 COM 241 10.1 发展历史 241 10.2 接口、对象与方法 242 10.2.1 一些术语的说明 242 10.2.2 介绍一个实际的例子 243 10.2.3 IUnknown接口 243 10.3 服务程序、客户程序与类 246 10.4 COM运行期的环境 247 10.4.1 定义类工厂 247 10.4.2 COM对象如何重复使用 248 10.5 排列与线程 248 10.5.1 排列 249 10.5.2 线程 250 10.6 COM、OLE和自动化 251 10.6.1 IDispatch 251 10.6.2 自动化服务程序、对象和 控制程序 253 10.6.3 同时支持IDispatch和IUnknown 253 10.7 永久性COM数据 253 10.8 标识COM数据 255 10.9 传送数据 255 10.9.1 统一数据传送 256 10.9.2 可连接的对象 256 10.10 DCOM 257 10.10.1 对象的创建 257 10.10.2 调用方法 259 10.10.3 安全问题 260 10.11 一些重要的信息 260 10.11.1 BSTR 260 10.11.2 SAFEARRAY 261 10.11.3 HRESULT 261 10.11.4 VARIANT 262 10.12 其他参考书目 262 10.13 小结 262 第11章 COM和MFC 263 11.1 了解Afx全局函数 263 11.1.1 应用程序寿命的控制 263 11.1.2 客户程序控件的管理 266 11.1.3 连接点的管理 266 11.1.4 控件的注册 268 11.1.5 异常情况 269 11.1.6 初始化 269 11.1.7 许可权 270 11.1.8 类型信息 270 11.2 关于OLE宏 271 11.2.1 类工厂 271 11.2.2 客户程序/容器常用的命令 271 11.2.3 控件属性的持久性 272 11.2.4 对话框数据交换 273 11.2.5 调度表 274 11.2.6 事件表 275 11.2.7 属性页数据表 278 11.2.8 属性页 278 11.2.9 类型库的访问 279 11.3 MFC和OLE类的类别 279 11.3.1 活动文档 279 11.3.2 自动化 280 11.3.3 OLE的常用对话框 281 11.3.4 容器 282 11.3.5 控件 284 11.3.6 拖曳和放置 285 11.3.7 文档服务程序 286 11.3.8 支持 287 11.4 小结 288 第12章 MFC OLE 服务程序 289 12.1 文档服务程序 289 12.2 服务程序的类型 289 12.2.1 完整的服务程序 290 12.2.2 活动文档 290 12.2.3 容器/服务程序 290 12.2.4 小型服务程序 290 12.3 文档服务程序的设计 290 12.3.1 OLE文档 291 12.3.2 活动文档 294 12.4 建立一个活动文档服务程序 298 12.4.1 一致性 298 12.4.2 显示视图 299 12.5 自动化服务程序 300 12.6 IDispatch 301 12.7 ODL中的IDispatch派生接口 302 12.8 通过IDispatch调用方法 303 12.8.1 GetIDsOfNames 303 12.8.2 类型信息的方法 304 12.8.3 Invoke 304 12.9 调度接口与普通接口不同 304 12.10 通过IDispatch访问C++中的 自动化服务程序 305 12.11 双重接口 305 12.12 变码 306 12.13 使用MFC的自动化服务程序 308 12.13.1 服务程序的类型 308 12.13.2 声明和定义更多的调度接口 311 12.13.3 添加方法和属性 311 12.14 小结 313 第13章 MFC OLE 客户程序 314 13.1 IDispatch和它在自动化中的作用 314 13.2 自动化服务程序的接口定义 314 13.2.1 IDL与ATL 315 13.2.2 ODL与MFC 316 13.2.3 双重接口 317 13.3 MFC与自动化 318 13.3.1 控制器 318 13.3.2 连接到服务程序 319 13.3.3 服务程序的回顾 321 13.4 创建控制器 321 13.4.1 使用COleDispatchDriver 321 13.4.2 使用# import 325 13.4.3 远程自动化 332 13.5 小结 335 第14章 MFC ActiveX控件 336 14.1 开发策略 336 14.1.1 MFC 336 14.1.2 ATL 337 14.1.3 MFC与ATL 337 14.2 控件开发 338 14.3 控件的两个方面 340 14.3.1 运行时 340 14.3.2 设计时 340 14.4 建立控件的子类 340 14.4.1 MFC 340 14.4.2 ATL 341 14.5 组件类别 341 14.5.1 ICatRegister 342 14.5.2 ICatInformation 342 14.6 方法、属性和事件 342 14.6.1 属性 342 14.6.2 方法 344 14.6.3 事件 344 14.7 属性页 346 14.8 组件注册 347 14.9 COM对象子关键字 348 14.10 建立一个MFC控件 349 14.11 接口定义 351 14.12 一个快速ATL移植 358 14.13 小结 362 第15章 MFC ActiveX控件容器 363 15.1 活动文档容器 363 15.1.1 存储区 364 15.1.2 现场对象 365 15.1.3 原地激活 365 15.1.4 文档扩展 367 15.1.5 建立最简单的活动文档容器 367 15.2 OLE控件 368 15.2.1 对已有项目添加包容 369 15.2.2 ActiveX容器 369 15.2.3 控件包容和事件 375 15.3 小结 380 第16章 使用MFC和ATL 381 16.1 什么是ATL,为什么ATL在MFC 编程中很重要 381 16.2 对MFC应用程序有帮助的ATL COM 支持 381 16.2.1 COM指针 381 16.2.2 其他ATL COM支持 383 16.3 对MFC应用程序的高级ATL支持 390 16.3.1 开始做MFC应用程序 390 16.3.2 添加所需要的ATL支持 390 16.3.3 自动建立ATL COM支持代码 391 16.3.4 检查添加到MFC应用程序中 的ATL代码 394 16.3.5 添加另外的ATL COM支撑文件 400 16.3.6 修改项目设置 401 16.3.7 建立客户端应用程序 401 16.4 小结 403 第17章 用脚本语言编写MFC程序 404 17.1 脚本编程基础 404 17.1.1 脚本编程接口 405 17.1.2 对偶接口 409 17.2 对象模型 411 17.3 实现一个脚本编程的程序 412 17.4 小结 421 第四部分 MFC数据库编程 第18章 MFC数据库处理 423 18.1 关系数据库概念 423 18.2 存储和检索数据 425 18.3 数据库通信机制 427 18.4 ODBC/MFC 428 18.4.1 CDatabase 428 18.4.2 CRecordset 429 18.5 DAO 436 18.5.1 CDaoWorkspace 436 18.5.2 CDaoDatabase 437 18.5.3 CDaoRecordset 438 18.5.4 CDaoTableDef 438 18.5.5 CDaoQueryDef 439 18.6 小结 440 第19章 高级数据库支持 441 19.1 数据存取的COM途径 441 19.2 OLE DB消费者使用ATL包装类 441 19.2.1 CDataSource 445 19.2.2 CSession 446 19.2.3 存取器 447 19.2.4 行集 451 19.2.5 存取数据源的数据 454 19.3 使用ADO C++接口 456 19.3.1 ADOConnection 461 19.3.2 错误 463 19.3.3 ADORecordset 463 19.3.4 ADOCommand 465 19.3.5 ADOField 467 19.3.6 ADOProperty 468 19.3.7 ADOParameter 468 19.3.8 ADOError 469 19.4 小结 469 第五部分 MFC实用程序类 第20章 字符串和集合 471 20.1 字符串和字符串类 471 20.1.1 CString类内情 471 20.1.2 字符串分配 472 20.1.3 某些CString函数 474 20.1.4 CString实际用法 476 20.1.5 CString小结 478 20.2 集合 478 20.2.1 集合类内情 478 20.2.2 模板化集合 483 20.3 UNL_MultiEd应用程序 484 20.4 一种STL方法 488 20.5 总结 488 第21章 文件输入输出和MFC 489 21.1 CFile类 489 21.2 CFile类内情 491 21.2.1 CStdioFile类 494 21.2.2 CMemFile类 496 21.2.3 CSharedFile类 497 21.3 CFileDialog类 497 21.4 用户定义的CFileDialog类 499 21.5 CFile和CFileDialog的实际使用 500 21.5.1 打开文件 500 21.5.2 从文件中读数据 502 21.6 一种传统的途径 504 21.7 小结 505 第22章 异常处理技术 506 22.1 异常处理的用法 506 22.2 异常的类型 509 22.3 结构化异常处理程序 509 22.4 嵌套环境中的结构化异常处理 510 22.5 引发结构化异常 511 22.6 异常产生后的清理 512 22.7 C++异常处理 513 22.8 定义C++异常类 515 22.9 MFC异常处理 517 22.10 派生自己的与MFC兼容的 异常对象 523 22.11 删除异常 525 22.12 使用MFC异常宏 525 22.13 混合使用异常处理技术 526 22.14 小结 527 第六部分 MFC和Web 第23章 MFC和DHTML 529 23.1 DHTML、MSIE和因特网 529 23.2 使用IE Web ActiveX 控件 530 23.2.1 IE ActiveX控件基础 530 23.2.2 在对话框中使用 IE ActiveX控件 536 23.3 使用DHTML 536 23.3.1 DHTML对象模型 539 23.3.2 DHTML COM接口 542 23.4 小结 551 第24章 CSocket程序设计 552 24.1 网络通信如何进行 552 24.2 Winsock和MFC 553 24.2.1 Winsock环境的初始化 554 24.2.2 创建一个Socket 554 24.2.3 打开连接 555 24.2.4 发送和接收消息 556 24.2.5 关闭连接 557 24.2.6 Socket事件 558 24.2.7 事件激发的控制 558 24.2.8 检测错误 559 24.2.9 获取Socket信息 559 24.2.10 Socket和I/O串行化 562 24.3 建立联网的应用程序 562 24.3.1 建立应用程序外壳 562 24.3.2 视窗布局和启动功能 563 24.3.3 CAsyncSocket类的继承 565 24.3.4 连接应用程序 567 24.3.5 发送和接收 569 24.3.6 终止连接 571 24.4 小结 572 第25章 WinInet程序设计 573 25.1 Web应用协议和WinInet 573 25.1.1 超文本传输协议 573 25.1.2 文件传输协议 573 25.1.3 Gopher协议 574 25.1.4 WinInet API和MFC 575 25.2 因特网会话基础 575 25.2.1 CInternetSession 575 25.2.2 CInternetFile 581 25.2.3 CIntenetException 582 25.2.4 CInternetConnection 582 25.2.5 生成一个简单的WinInet 应用程序 583 25.3 应用程序级功能 588 25.3.1 HTTP类 589 25.3.2 FTP类 592 25.3.3 Gopher 595 25.3.4 生成一个简单的FTP客户程序 597 25.4 小结 603 第26章 ISAPI扩展 604 26.1 基础 604 26.2 由此及彼 616 26.3 从GET到POST 619 26.4 添加一些窗体元素 620 26.4.1 修改窗体 621 26.4.2 修改分析图 621 26.4.3 声明和使用处理函数 621 26.4.4 添加单选组 622 26.5 其他窗体输入元素 625 26.5.1 修改窗体 625 26.5.2 修改分析图 626 26.5.3 修改处理函数 626 26.6 小结 627 第27章 MAPI和MFC 628 27.1 通信应用程序接口 628 27.2 两个高级选择:简单 MAPI和CMC 628 27.2.1 简单MAPI 629 27.2.2 公共消息转发调用 629 27.2.3 MapiMessage结构 630 27.2.4 MapiFileDesc结构 631 27.3 MFC提供的受限的MAPI功能 631 27.4 CDocument连接 631 27.4.1 以MFC方法实现MAPI 631 27.4.2 CDocument::OnFileSendMail ()方法 632 27.5 实例程序:MAPI 1.EXE 636 27.6 小结 638 第28章 TAPI和MFC 639 28.1 概述 639 28.2 TAPI发展简史 643 28.3 使用辅助电话 646 28.4 使用基本电话服务 647 28.4.1 配置TAPI 647 28.4.2 连接TAPI 654 28.4.3 用TAPI传输数据 657 28.4.4 用TAPI断开连接 658 28.4.5 结束TAPI会话 659 28.5 小结 659 第七部分 MFC与图形编程 第29章 MFC和OpenGL 661 29.1 OpenGL是什么 661 29.2 图形基本知识 662 29.2.1 核心术语和关键概念 662 29.2.2 图形程序设计的数学基础 663 29.3 OpenGL基础 665 29.3.1 OpenGL数据类型 666 29.3.2 OpenGL函数命名约定 666 29.3.3 OpenGL渲染函数范围 667 29.3.4 OpenGL矩阵栈 668 29.3.5 OpenGL渲染描述表 669 29.4 最小OpenGL程序和自定义 671 29.4.1 生成基本MFC应用程序 671 29.4.2 添加自定义OpenGL基类 672 29.4.3 把自定义视图类整合进 应用程序 678 29.4.4 生成3维场景 678 29.4.5 把OpenGL库添加到项目 的链表 679 29.5 2维和3维模型 679 29.5.1 基本模型开发 680 29.5.2 模型变换 681 29.5.3 显示列表 683 29.6 光 686 29.6.1 OpenGL光处理技术的基础 686 29.6.2 光的类型 687 29.6.3 物体的材料特性 688 29.7 纹理贴图 689 29.7.1 OpenGL图像和Windows独立 于设备的位图 689 29.7.2 贴纹理图 690 29.8 特殊效果 691 29.8.1 融合 691 29.8.2 雾化 692 29.9 小结 693 第30章 MFC和DirectX 694 30.1 DirectX是什么 694 30.1.1 DirectX概述 694 30.1.2 DirectX的部件 695 30.2 DirectX基础 696 30.2.1 COM编程风格和DirectX 的差异 696 30.2.2 DirectX部件启动顺序 696 30.3 DirectDraw基础 697 30.3.1 DirectDraw初始化 697 30.3.2 DirectDraw和调色板 701 30.3.3 DirectDraw表面 704 30.3.4 建立DirectDraw表面 704 30.3.5 位图在表面间传送 705 30.3.6 清除DirectDraw表面 706 30.3.7 DirectDraw页面翻转 706 30.3.8 从一个窗口使用DirectDraw 708 30.4 在实际中使用DirectDraw 710 30.4.1 表面和位图 710 30.4.2 把位图加载进表面 710 30.4.3 调色板问题 713 30.4.4 窗口渲染 716 30.4.5 错误处理 717 30.4.6 DirectDraw关闭 719 30.5 小结 721 第31章 多媒体与MFC 722 31.1 多媒体基础 722 31.2 DirectX媒体播放器控件 722 31.2.1 媒体播放器控件支持的 媒体格式 723 31.2.2 媒体播放器详情 723 31.2.3 CMediaPlayer类 724 31.3 使用媒体播放器控件 724 31.4 播放声音 731 31.4.1 与声波打交道 732 31.4.2 回到DirectSound 738 31.4.3 用DirectSound播放声响效果 740 31.5 小结 749 第八部分 高级MFC 第32章 注册表详解 751 32.1 Windows注册表的使用 751 32.2 注册表结构 752 32.3 注册表的程序控制 754 32.4 注册表示例程序 755 32.4.1 注册表的Key Editor对话框 755 32.4.2 生成一个新键 756 32.4.3 删除一个键 759 32.4.4 删除名字/数值对 760 32.5 关于包装注册表函数 762 32.6 关于安装的几句话 762 32.7 小结 763 第33章 DLL编写及使用 764 33.1 DLL的优点 764 33.1.1 消除重复代码 764 33.1.2 模块特性和封装 764 33.1.3 可扩性 765 33.2 AFX DLL详解 765 33.3 导出类、函数和数据 765 33.3.1 导出效率的考虑 765 33.3.2 混合的名字 766 33.3.3 导出类 767 33.3.4 导出与导入 767 33.3.5 导出显函数 768 33.3.6 导出数据 768 33.3.7 导出MFC数据 769 33.3.8 导出析构函数 770 33.3.9 导出工具集include文件 771 33.3.10 导出选择 771 33.4 其他DLL问题 772 33.4.1 AfxLoadLibrary和 AfxFreeLibrary 772 33.4.2 可扩充和可复用设计 772 33.4.3 资源分配 773 33.4.4 多模块定义文件 773 33.4.5 地址加载和链接程序 774 33.5 小结 775 第34章 创建自定义向导 776 34.1 属性表和属性页 776 34.1.1 CPropertySheet和 CPropertyPage类 776 34.1.2 引导过程与属性表连接 777 34.2 创建一个向导 777 34.2.1 设置向导模式 778 34.2.2 激活向导的按钮 778 34.2.3 显示向导 778 34.2.4 向导通知消息 779 34.2.5 向后退 779 34.2.6 移到下一个 779 34.2.7 成功结束 779 34.3 示例程序:WIZARD1.EXE 779 34.3.1 生成向导页对话模板资源 780 34.3.2 为每个对话资源创建对话类 781 34.3.3 Welcome页详解:类 CIntroPage 782 34.3.4 About You页详解: 类CPage1 784 34.3.5 更新CPage2和CPage3的 向导信息 787 34.3.6 创建和显示向导 789 34.4 小结 790 |