| 作者 |
| Chuck Sphar |
| 丛书名 |
| 微软公司核心技术书库 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111072805 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书对Visual C++ 6的使用与开发做了全面系统的介绍。首先简单介绍了Visual C++ 6集成开发环境的操作和使用,讲述了C++语言、Windows编程、MFC的基础知识;然后,通过一个画图程序说明了Visual C++ 6编程的主要方法和步骤,包括Windows 的菜单、工具栏和对话框资源的使用、程序调试的方法、文档/视图结构、鼠标消息处理、颜色的使用、滚动处理、文件读写、文档打印和多视图。 本书在组织上是按照由浅入深、循序渐进的结构,强调边学边练,主要通过一个个示例程序来说明如何使用Visual C++ 6,并精心挑选了一些图片,这样既通俗易懂,又能让读者真正掌握编程的基本技巧和方法,无论对于初学者还是具有一定基础的编程人员,都有很高的参考价值。 |
| 目录 |
| 目 录 译者序 前言 第一部分 Visual C++ 入门 第1章 Visual C++开发环境 1 1.1 开始运行Visual C++ 1 1.2 Visual C++联机帮助系统 2 1.2.1 帮助基础知识 3 1.2.2 缩小查找范围 4 1.2.3 防止迷路 6 1.2.4 补充说明 7 1.3 项目和项目工作区 8 1.3.1 项目 8 1.3.2 项目工作区 8 1.4 采用项目进行工作 9 1.4.1 创建一个项目文件 9 1.4.2 及创建的文件 10 1.4.3 项目工作区窗口的使用 11 1.4.4 项目文件的添加和删除 13 1.4.5 编辑源代码和资源 14 1.4.6 项目配置 15 1.4.7 项目连编 16 1.4.8 改正编译错误 16 1.4.9 运行应用程序 17 1.4.10 调试应用程序 18 1.4.11 剖试器和代码优化 18 1.5 采用Visual C++提供的向导工具 18 1.6 项目工作区窗口的使用 19 1.6.1 文档窗口 19 1.6.2 停靠窗口 20 1.7 工具栏和菜单 21 1.8 Visual C++中的查找 22 1.8.1 查找和替换 22 1.8.2 下拉式的查找列表控件 23 1.8.3 文件查找命令 23 1.8.4 源代码文件的书签 23 1.9 Microsoft网站和联机帮助 23 1.10 技巧 23 1.11 练习 24 1.12 下一步学什么 24 第2章 C++基础 25 2.1 采用C++语言编写的Hello程序 25 2.2 编译和运行应用程序 27 2.3 在Hello文件中的C++代码 28 2.3.1 C++注释 28 2.3.2 预编译伪指令 29 2.3.3 C++常数 29 2.3.4 C++关键字 30 2.3.5 直接量 30 2.3.6 语句 31 2.3.7 变量和数据类型 31 2.3.8 变量的内存分配 36 2.3.9 函数和参数 38 2.3.10 从函数返回结果 39 2.3.11 C/C++运行库 40 2.3.12 main函数 40 2.3.13 表达式和操作符 42 2.3.14 C++控制语句 44 2.3.15 C++输入/输出流 46 2.4 练习 46 2.5 下一步学什么 47 第3章 C++作用域、指针和引用 48 3.1 作用域 48 3.2 指针 50 3.2.1 指针基础 51 3.2.2 指针和数组 53 3.2.3 指针和字符串 54 3.2.4 函数参数和函数返回指针 55 3.3 引用 58 3.4 关于指针、引用的规则和注意事项 60 3.4.1 传递参数和返回结果的规则 60 3.4.2 返回结果需要注意事项 60 3.5 头文件和实现文件 62 3.5.1 避免多重包含 64 3.5.2 预编译头文件 64 3.6 练习 64 3.7 下一步学什么 65 第4章 C++类 66 4.1 对象和类 66 4.2 Shape1程序 68 4.2.1 Shape1程序的C++代码 72 4.2.2 Shape1程序中的struct 73 4.2.3 Shape1程序中的运行库函数 74 4.2.4 Shape1程序中的main函数 75 4.2.5 Shape1程序的缺陷 76 4.3 Shape2程序 76 4.3.1 Shape2 程序的C++语言 80 4.3.2 静态变量 84 4.3.3 Shape2程序的缺陷 85 4.4 友元函数 85 4.5 练习 87 4.6 下一步学什么 87 第5章 面向对象程序设计 88 5.1 Shape3程序 88 5.1.1 Shape3程序中的C++ 93 5.1.2 类的派生 94 5.1.3 设计类的层次性 98 5.1.4 类层次的访问权限 99 5.1.5 析构器 100 5.1.6 静态类成员 101 5.1.7 关于构造器和析构器的进一步 说明 102 5.1.8 操作符重载 108 5.2 作用域 109 5.3 面向对象的程序设计 110 5.4 本书没有介绍的内容 111 5.5 练习 112 5.6 下一步学什么 113 第6章 Windows和Win32 API 114 6.1 Windows的优点 114 6.2 Windows API 114 6.2.1 Win32、SDK和Windows.h 114 6.2.2 Windows的主要概念 115 6.2.3 不同的Win32平台编程 115 6.2.4 多任务和多线程 115 6.3 Windows基础 115 6.3.1 事件 116 6.3.2 消息 116 6.3.3 绘图 117 6.3.4 设备描述表 119 6.3.5 坐标系 120 6.4 Windows程序的生命周期 123 6.5 练习 123 6.6 下一步学什么 123 第7章 采用MFC AppWizard生成代码 124 7.1 MFC、Win32 API和学习曲线 124 7.1.1 类库 124 7.1.2 应用框架 125 7.2 使用AppWizard生成代码 126 7.2.1 跟我一起学习 126 7.2.2 对MyDraw程序进行连编 128 7.2.3 运行MyDraw应用程序 129 7.2.4 AppWizard免费提供的是什么 130 7.3 编写代码 131 7.4 练习 133 7.5 下一步学什么 133 第8章 MFC内幕 134 8.1 通过AppWizard文件来探索MFC 134 8.2 浏览代码 134 8.2.1 应用程序对象 135 8.2.2 主框架窗口对象 142 8.2.3 文档对象 146 8.2.4 文档/视图结构 147 8.2.5 视图对象 149 8.3 Windows在MFC中的位置 153 8.4 MFC程序的生命周期 154 8.5 在运行AppWizard之后的工作 155 8.6 MFC和Windows 155 8.7 在MFC查找和使用钩子 156 8.8 练习 157 8.9 下一步学什么 157 第二部分 MFC基础 第9章 菜单 159 9.1 MyDraw程序简介 159 9.2 菜单 160 9.2.1 菜单资源 160 9.2.2 菜单助记符和菜单加速键 161 9.3 Windows资源 161 9.4 在MyDraw程序中添加“Tools”菜单 163 9.4.1 加入顶层菜单 164 9.4.2 添加子菜单 164 9.4.3 在MyDraw程序中添加键盘 加速键 165 9.5 菜单和命令 166 9.6 练习 167 9.7 下一步学什么 167 第10章 添加命令处理函数 168 10.1 继续MyDraw程序的第一步 168 10.2 添加命令处理函数 168 10.2.1 添加OnToolRectangle和OnTool Ellipse命令处理函数 169 10.2.2 在视图类中添加数据成员 m_boxShape 172 10.2.3 添加两个辅助函数RandomCoord 和RandomRect 172 10.3 测试OnDraw 的菜单和绘图命令 174 10.3.1 使图形消失 175 10.3.2 更新重画 175 10.3.3 记住Shape类型 175 10.3.4 MyDraw程序的功能 176 10.4 MyDraw程序的未来版本 177 10.5 练习 177 10.6 下一步学什么 178 第11章 增加人机界面功能 179 11.1 采用鼠标绘图 179 11.1.1 与鼠标相关的函数 179 11.1.2 鼠标消息处理函数 180 11.1.3 添加鼠标消息处理函数 181 11.1.4 采用AfxMessageBox来测试消息 处理函数 182 11.2 MyDraw 程序 183 11.2.1 创建Shape 数据类型 184 11.2.2 代替视图类数据成员 184 11.2.3 重写OnDraw 函数 185 11.2.4 为鼠标消息添加消息处理函数 186 11.2.5 添加绘图辅助函数 187 11.2.6 重写“Tool”命令处理函数 188 11.2.7 为“Tool”命令添加更新处理 函数 188 11.2.8 删掉旧代码 188 11.3 在鼠标消息处理函数中绘制图形 189 11.3.1 按下鼠标按钮:开始绘图 189 11.3.2 捕获鼠标消息 189 11.3.3 设置绘图的起始位置 189 11.3.4 拖动鼠标:在绘图中描出鼠标 轨迹 190 11.3.5 删掉代码行:R2_NOT绘制图形 模式 190 11.3.6 InvertShape辅助函数 190 11.3.7 释放鼠标:结束绘图 191 11.3.8 释放捕获 192 11.3.9 绘制最后的图形,调整它的 坐标 192 11.3.10 在数组中保存图形 192 11.3.11 使用数组 192 11.4 对选中的绘制图形工具添加选中标 记:更新菜单 192 11.4.1 更新处理函数 193 11.4.2 CCmdUI类 193 11.4.3 添加一个更新处理函数 193 11.5 使图形透明 194 11.6 练习 197 11.7 下一步学什么 197 第12章 在绘图中使用颜色 198 12.1 RGB颜色系统 198 12.1.1 采用RGB宏来创建一种颜色 198 12.1.2 用颜色进行工作 198 12.2 添加分层的“Tools”菜单 199 12.3 为“Color”菜单命令编写高效的 处理函数 200 12.4 在“Color”菜单中添加选中标记 201 12.5 采用颜色绘图 202 12.5.1 管理当前选中的颜色 202 12.5.2 将“Color”命令ID转化为RGB 颜色 202 12.5.3 选择采用当前颜色的画笔 203 12.5.4 设置新图形的颜色 205 12.6 练习 205 12.7 下一步学什么 205 第13章 调试应用程序 206 13.1 Visual C++调试器概览 206 13.2 Debug和Release连编的比较 207 13.3 查找程序中的缺陷 208 13.4 分析程序缺陷 209 13.4.1 变量检查 211 13.4.2 断点 213 13.4.3 在MyDraw程序中设置断点 213 13.4.4 单步执行代码 214 13.4.5 查找第11个图形 216 13.4.6 问题分析 220 13.5 修正缺陷 221 13.6 MFC调试机制 222 13.7 练习 222 13.8 下一步学什么 223 第三部分 深入学习MFC 第14章 数据、文档和视图 225 14.1 文档的设计 225 14.1.1 文档/视图结构 225 14.1.2 选择一个合适的数据结构 226 14.1.3 MyDraw程序的文档界面 227 14.1.4 清除文档 234 14.2 CShape类 235 14.2.1 类的定义 235 14.2.2 从CObject 类中派生 237 14.2.3 CShape 基类 238 14.2.4 一个派生类CShpRectangle 239 14.2.5 CShape实现 240 14.2.6 CShpRectangle和CShpEllipse 实现代码 241 14.2.7 修补MyDraw的头文件结构 241 14.2.8 数据类设计考虑概述 242 14.3 练习 243 14.4 下一步学什么 244 第15章 屏幕滚动 245 15.1 为什么需要滚动栏 245 15.2 滚动的基本理论 246 15.3 处理滚动的基本技巧 248 15.4 处理文本行的滚动 248 15.4.1 画出文本 250 15.4.2 设置滚动大小 252 15.4.3 在 MyText中添加滚动 253 15.5 返回MyDraw程序 254 15.5.1 在何处调用SetScrollSize 255 15.5.2 文档长度计算 255 15.5.3 在MyDraw程序中增加滚动功能 256 15.5.4 坐标转换 257 15.6 几点思考 260 15.7 练习 261 15.8 下一步学什么 261 第16章 在文件中保存数据 262 16.1 序列化和反序列化 262 16.2 在MyDraw中实现序列化 263 16.2.1 数据类的序列化要求 263 16.2.2 使一个图形序列化 265 16.2.3 在文档中序列化所有图形 265 16.2.4 CShape的序列化成员函数 266 16.2.5 CMyDrawDoc中的序列化成员 函数 268 16.2.6 采用CArchieve 操作符和调用 Serialize 269 16.2.7 采用MFC模式进行应用程序版本 控制 271 16.3 序列化是怎样工作的 272 16.3.1 DECLARE_SERIAL宏和 IMPLEMENT_SERIAL宏 272 16.3.2 创建对象 272 16.3.3 Serialize是如何调用的 273 16.3.4 CArchieve和CFile 274 16.4 不采用序列化 275 16.4.1 文档/视图中的文件I/O 275 16.4.2 在非文档/视图结构中使用文件 I/O 276 16.5 练习 276 16.6 下一步学什么 276 第17章 文档打印 277 17.1 打印设计 277 17.2 MFC打印程序结构 277 17.2.1 Windows打印 277 17.2.2 采用MFC进行打印程序设计 278 17.3 改变映射模式 279 17.4 对文档编写页码 282 17.4.1 计算可打印区域 283 17.4.2 MFC在何处中断页面的打印 285 17.5 纵向打印和横向打印 288 17.6 添加页眉和页脚 289 17.6.1 添加PrintHeader和PrintFooter 函数 290 17.6.2 添加页眉 291 17.6.3 添加页脚 292 17.7 结束打印 293 17.8 练习 294 17.9 下一步学什么 294 第18章 工具栏和选择工具 295 18.1 添加一个工具栏 295 18.1.1 工具栏类 295 18.1.2 创建一个新的工具栏资源 295 18.1.3 编写工具栏代码 297 18.2 实现“Selection”代码 301 18.2.1 选择模式是如何工作的 302 18.2.2 “Selction”按钮 302 18.2.3 在Shapes 类中的选择代码 304 18.2.4 击中测试 307 18.2.5 绘制选择处理 309 18.3 练习 312 18.4 下一步学什么 312 第19章 对话框和控件 313 19.1 关于对话框和控件 313 19.2 一个简单的有模式对话框 314 19.2.1 创建并编辑对话框资源 315 19.2.2 创建对话框类 316 19.2.3 显示对话框并检索它的内容 317 19.3 Windows公共对话框 319 19.3.1 关于公共对话框 319 19.3.2 在MyDraw中添加“Color” 对话框 320 19.4 一个更为复杂的属性表单对话框 321 19.4.1 属性表单和属性页 321 19.4.2 显示“Settings”对话框 323 19.4.3 为“Setting”对话框创建对话框 资源 324 19.4.4 为“Settings”对话框创建 对话框类 326 19.4.5 为控件添加类数据成员 327 19.4.6 实现“Shape”属性页 328 19.4.7 实现“Line”属性页 329 19.5 控件窗口 332 19.6 练习 333 19.7 下一步学什么 333 第20章 多视图 334 20.1 分割窗口 334 20.1.1 何时采用动态或静态分割窗口 335 20.1.2 将静态和动态分割窗口相结合 335 20.2 在MyDraw 中添加动态分割窗口 336 20.3 创建一个静态分割窗口 337 20.4 采用视图类能完成什么 338 20.4.1 用于人机交互 339 20.4.2 视图是一个窗口 339 20.4.3 作为应用程序视图类的基类 339 20.4.4 组合视图类 339 20.5 MFC对象的通信 340 20.6 祝贺 340 20.7 练习 340 20.8 下一步学什么 341 第21章 结束MyDraw程序 342 21.1 关于C++、Visual C++和MFC的 工具书 342 21.2 本书所没有涉及的内容 343 21.3 Microsoft网站和MSDN Online 343 21.4 MyDraw程序的最后特色 344 21.5 MyDraw的最终版本 345 附录A MFC源代码文件 346 |