| 作者 |
| 王华 叶爱亮等 |
| 丛书名 |
| 软件开发技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111070825 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书共分20章,主要介绍了Visual C++集成开发环境、通用MFC编程、多媒体制作、数据库编程、多线程编程、网络编程、Activex控件以及一些常用编程方法和技巧等,并配以大量例程。本书读者对象是使用Visual C++开发工具的初、中级程序员。 [p align=center>下载本书源代码 [/a> |
| 目录 |
| 目 录 前言 第1章 Visual C++6.0开发环境 1 1.1 主框架窗口 1 1.1.1 菜单栏 2 1.1.2 工具栏 12 1.1.3 工作区 15 1.1.4 客户区 15 1.1.5 输出窗口 15 1.2 资源编辑器 16 1.2.1 加速键编辑器 16 1.2.2 对话框编辑器 16 1.2.3 图标编辑器 17 1.2.4 菜单编辑器 17 1.2.5 串编辑器 17 1.2.6 工具栏编辑器 18 1.2.7 版本信息编辑器 18 1.3 Visual C++ 实用工具 19 1.3.1 Spy++ 19 1.3.2 MFC Tracer 20 1.3.3 Error Lookup 20 1.3.4 WinDiff 20 1.3.5 ZoomIn 22 1.3.6 ActiveX Control Test Container 23 1.3.7 Help Workshop 23 1.3.8 HTML Help Workshop 23 1.4 常用操作方法 23 第2章 应用程序基本框架 26 2.1 用MFC AppWizard自动生成第一个 Windows应用程序 26 2.1.1 工作区和工程 26 2.1.2 生成应用程序框架 26 2.1.3 工程的文件组成 32 2.2 程序的运行过程和应用框架 34 2.2.1 应用框架 34 2.2.2 程序运行过程 35 2.3 应用类 36 2.3.1 InitInstance()函数 37 2.3.2 Run()函数 41 2.3.3 ExitInstance()函数 42 2.3.4 OnIdle()函数 42 2.4 边框窗口类 42 2.4.1 文档边框窗口 42 2.4.2 主边框窗口类 42 2.4.3 子边框窗口类 43 2.5 文档类和视图类 44 2.5.1 文档模板类 44 2.5.2 文档类 45 2.5.3 视图类 45 2.6 上述各个类的对象之间的关系 46 2.6.1 上述对象的构造 46 2.6.2 上述对象之间的访问 47 第3章 菜单与加速键 48 3.1 消息 48 3.2 消息映射 48 3.3 命令消息处理过程和更新用户接口 对象状态命令消息处理过程 50 3.4 命令消息的传递路径 51 3.5 菜单和加速键资源 53 3.5.1 菜单 53 3.5.2 键盘加速键 54 3.6 添加菜单 54 3.7 添加键盘加速键 59 3.8 菜单项的状态更新 60 第4章 对话框与控件 63 4.1 消息对话框 63 4.2 一般对话框的创建与使用流程 65 4.3 例程S4_1:使用对话框与控件 65 4.4 创建对话框资源 66 4.5 创建对话框类 68 4.5.1 类的生成 68 4.5.2 往程序中添加代码 69 4.5.3 消息响应函数 70 4.5.4 数据交换和校验 70 4.6 模态对话框 71 4.7 非模态对话框 73 4.8 属性页对话框 74 4.8.1 CPropertySheet类 74 4.8.2 CPropertyPage类 77 4.8.3 创建一般属性页对话框 79 4.8.4 创建向导对话框 80 4.9 通用对话框 83 4.10 控件 85 4.10.1 Picture控件 86 4.10.2 Static Text控件 86 4.10.3 Edit Box控件 86 4.10.4 Spin控件 87 4.10.5 Combo Box控件 88 4.10.6 Group Box控件 90 4.10.7 Radio Button控件 90 4.10.8 Check Box控件 90 4.10.9 Button控件 96 4.10.10 Slider控件 98 4.10.11 Horizontal Scroll Bar与Vertical Scroll Bar控件 101 4.10.12 Tab控件 104 4.10.13 Tree控件 107 4.10.14 List控件 111 4.10.15 Progress控件 114 4.10.16 Animate控件 117 第5章 控件栏 119 5.1 工具栏 119 5.2 例程S5_1 120 5.3 状态栏 126 5.4 对话框栏 129 第6章 绘图 132 6.1 DC和CDC类 132 6.2 GDI和CGdiObject类 133 6.3 绘图程序实例 134 第7章 文本与字体 153 7.1 CFont类 153 7.2 字体应用程序之一 153 7.3 字体应用程序之二 157 7.4 字体应用程序之三 159 第8章 打印 163 8.1 打印原理 163 8.2 CPrintInfo 164 8.3 CPageSetupDialog 166 8.4 例程S8_1 171 8.4.1 创建工程 171 8.4.2 增加资源 171 8.4.3 实现打印功能 172 第9章 文件操作 176 9.1 串行化 176 9.1.1 MFC程序框架支持的文档结构 177 9.1.2 CArchive类 179 9.1.3 直接使用串行化 182 9.2 CFile类 182 9.2.1 打开和关闭文件 182 9.2.2 文件的定位 183 9.2.3 文件的读写操作 183 9.2.4 文件的管理 184 9.2.5 文件异常 184 9.3 文件对话框 184 9.3.1 使用CFileDialog 185 9.3.2 选择多个文件 186 9.3.3 设计自己所需的文件对话框 186 9.4 内存文件类 186 9.4.1 CMemFile类 186 9.4.2 CSharedFile类 187 9.5 文件输入/输出流 188 9.6 内存映射文件 188 9.6.1 创建和打开内存映射文件 188 9.6.2 使用内存映射文件 189 9.6.3 使用内存映射文件共享数据 190 9.6.4 VLM的内存映射文件操作 191 9.7 文件操作例程 191 9.7.1 创建程序框架和使用框架支持的串 行化操作 192 9.7.2 使用CStdioFile类 199 9.7.3 使用CFile、CArchive类和内存映射 文件 201 第10章 多媒体制作 205 10.1 声音 205 10.1.1 两个例子 205 10.1.2 播放声音的三个简单函数 207 10.1.3 用MCI控制波形声音的播放 209 10.2 图像 223 10.2.1 Windows的BMP文件结构 224 10.2.2 显示DIB的程序实例 225 10.3 视频 231 第11章 数据库编程 234 11.1 ODBC与DAO 234 11.2 数据库操作 234 11.2.1 异常处理 234 11.2.2 新建数据库 235 11.2.3 打开数据库 235 11.2.4 关闭数据库 236 11.2.5 新建表 236 11.2.6 删除表 237 11.2.7 打开表 237 11.2.8 修改表结构 238 11.2.9 插入记录 238 11.2.10 删除记录 240 11.2.11 修改记录 240 11.3 DAO类 241 11.3.1 CDaoWorkspace 241 11.3.2 CDaoDatabase 244 11.3.3 CDaoRecordset 246 11.3.4 CDaoQueryDef 251 11.3.5 CDaoTableDef 253 11.3.6 CDaoRecordView 255 11.3.7 CDaoFieldExchange 256 11.3.8 CDaoException 257 11.4 例程S11_1 258 11.4.1 创建工程 258 11.4.2 增加、修改资源 258 11.4.3 增加CCrack类 260 11.4.4 实现数据库功能 268 第12章 多线程 286 12.1 多线程概述 286 12.2 用户界面线程 287 12.2.1 创建用户界面线程 287 12.2.2 启动用户界面线程 288 12.2.3 使用用户界面窗口 289 12.3 工作者线程 289 12.3.1 实现控制函数 289 12.3.2 启动工作者线程 290 12.4 线程的终止 290 12.4.1 正常终止 290 12.4.2 异常终止 291 12.4.3 几种终止函数的比较 291 12.4.4 获取线程的退出码 292 12.5 线程的管理和操作 292 12.5.1 优先级 292 12.5.2 控制运行状态 293 12.6 线程间通讯 293 12.6.1 使用同步类控制访问共享数据 293 12.6.2 使用消息队列 293 12.7 使用同步类 294 12.7.1 同步对象 294 12.7.2 同步访问对象 296 12.8 多线程的调试 297 12.9 多线程例程 299 第13章 网络编程 311 13.1 网络应用程序 311 13.1.1 网络应用程序的结构 311 13.1.2 建立socket对象 31! 13.1.3 建立连接 312 13.1.4 发送和接收数据 312 13.1.5 监听socket 312 13.1.6 为客户端连接请求建立socket队列 312 13.2 WinSock类 313 13.2.1 CAsyncSocket 313 13.2.2 CSocket 317 13.3 客户端应用程序例程S13_1 318 13.3.1 创建工程 318 13.3.2 增加、修改资源 319 13.3.3 增加CRequestSocket类 320 13.3.4 实现网络功能 322 13.4 服务器端例程S13_2 326 13.4.1 创建工程 326 13.4.2 增加、修改资源 326 13.4.3 增加CListeningSocket类 327 13.4.4 增加CClientSocket类 328 13.4.5 实现网络功能 329 第14章 动态链接库 333 14.1 DLL基础知识 333 14.1.1 DLL概述 333 14.1.2 MFC中的DLL 333 14.2 DLL入出口函数 334 14.2.1 DllMain函数 334 14.2.2 MFC AppWizrd生成的Regular DLL 的入出口 335 14.3 从DLL中导出函数 335 14.3.1 使用DEF文件导出函数 336 14.3.2 使用关键字-declspec(dllexport) 337 14.3.3 使用AFX_EXT_CLASS导出 337 14.4 DLL中的数据和内存 338 14.4.1 从DLL中导出数据 338 14.4.2 多个进程共享DLL中的数据和内存 339 14.5 DLL中的资源 340 14.6 程序链接 341 14.6.1 隐式链接 341 14.6.2 显式链接 342 14.7 Visual C++6.0自动生成的Win32 DLL 342 14.7.1 空的DLL工程 343 14.7.2 简单的DLL工程 343 14.7.3 导出了变量、函数和类的DLL 343 14.8 MFC AppWizard生成的DLL 344 14.8.1 静态链接MFC的Regular DLL 344 14.8.2 动态链接MFC的Regular DLL 344 14.8.3 动态链接的MFC扩展DLL 345 14.9 DLL的使用和调试 346 14.9.1 DLL的使用 346 14.9.2 如何调试DLL 347 14.10 DLL例程 348 14.10.1 S14_DLL例程 348 14.10.2 S14_APP应用程序例程 354 第15章 组件 362 15.1 添加组件的一般方法 362 15.2 例程S15_1 363 15.3 空闲时间处理(Idle time processing) 363 15.4 往视图中添加弹出式菜单(Pop-up Menu) 364 15.5 制作软件封面(Splash screen ) 366 15.6 切分视图窗口(Splitter Bar) 367 15.7 显示系统信息(System Info) 368 15.8 在软件启动时显示小提示(Tip of the day) 370 15.9 给控件添加小提示(ToolTip) 372 第16章 ActiveX控件 373 16.1 往工程中添加ActiveX控件 373 16.2 例程S16_1 374 16.2.1 创建工程 374 16.2.2 往工程中添加FlexGrid控件 374 16.2.3 使用FlexGrid控件 375 16.3 自定义ActiveX控件 378 16.4 例程S16_2 379 16.4.1 创建工程 379 16.4.2 测试ActiveX控件 379 16.4.3 注册/取消注册ActiveX控件 381 16.4.4 ActiveX控件的版本 381 16.4.5 定制ActiveX控件的图标 381 16.4.6 定制ActiveX控件的界面 382 16.4.7 添加栈属性 383 16.4.8 添加自定义属性 384 16.4.9 添加栈事件 388 16.4.10 添加自定义事件 388 16.4.11 添加栈方法 389 16.4.12 添加自定义方法 390 第17章 帮助的制作 391 17.1 HLP文件类型的帮助 391 17.1.1 RTF文件 392 17.1.2 Help Workshop 395 17.1.3 例程S17_1 395 17.1.4 WinHelp函数 399 17.2 HTML 402 17.2.1 HTML 402 17.2.2 例程S17_2 405 17.3 CHM类型的帮助 409 17.3.1 HTML Help Workshop 411 17.3.2 例程S17_3 412 17.3.3 HtmlHelp函数 414 第18章 MFC常用类 415 18.1 CArray 415 18.2 CPoint 417 18.3 CRect 419 18.4 CSize 422 18.5 CString 423 18.6 CStringArray 429 18.7 CTime 431 第19章 安装/卸载程序 434 19.1 安装/卸载程序 434 19.2 例程S19_1 434 19.2.1 InstallShield向导 434 19.2.2 Scripts标签 436 19.2.3 Components标签 436 19.2.4 Setup Types标签 438 19.2.5 Setup Files标签 439 19.2.6 File Groups标签 439 19.2.7 Resources标签 440 19.2.8 Media标签 441 19.2.9 程序的卸载过程 441 第20章 方法与技巧集锦 443 20.1 Visual C++常用操作技巧 443 20.1.1 打开和编辑二进制文件 443 20.1.2 检测括号是否匹配 443 20.1.3 检测#if语句和#endif语句是否匹配 443 20.1.4 删除工程的中间文件以便于备份 工程 443 20.1.5 快速显示当前函数的有关信息 443 20.2 如何同时操作两个或两个以上的工程 444 20.3 如何优化工作区中的树 444 20.4 如何将工程中的MFC类添加到 ClassWizard中 444 20.5 Visual C++命名规则 445 20.6 如何使工程链接时链入某些库文件 446 20.7 如何查看编译、链接的出错信息 447 20.8 如何在应用程序中使用中文 447 20.9 如何编写DOS控制台程序和C 语言程序 447 20.10 如何在应用程序中启动其他应用程序 449 20.10.1 调用system函数 449 20.10.2 调用WinExec函数 449 20.10.3 调用ShellExecuate函数 450 20.10.4 调用CreateProcess函数 450 20.11 如何退出应用程序 451 20.12 用内存映射文件实现多个程序间 互斥运行 452 20.13 如何禁止运行一个程序的多个实例 453 20.14 如何在程序中将其他窗口程序调至前台 454 20.15 设计通知栏图标程序 455 20.16 如何使MDI应用程序在刚启动时不 建立一个新文件 456 20.17 如何删除指定及其下的所 有文件和子 457 20.18 如何使用定时器 458 20.19 如何改变对话框的颜色 458 20.20 如何改变控件的颜色 459 20.21 如何获取对话框中控件的窗口指针 并进行一些常用操作 459 20.22 如何制作图标按钮和位图按钮 459 20.23 如何明确对话框的UpdateData()函 数的参数含义 460 20.24 如何使对话框中的两个Edit Box控 件的内容相关 460 20.25 如何从其他应用程序中“借用”资源 461 20.26 如何使用CDC类进行裁剪输出 461 20.27 设置视图类的空背景画刷,提高显 示刷新速度 462 20.28 使用内存兼容位图对象绘制,提高显 示刷新速度 463 20.29 实现全屏显示 464 20.30 如何在应用程序的整个窗口中获 取鼠标的消息 466 20.31 如何使用注册表 467 20.31.1 RegCreateKeyEx 468 20.31.2 RegOpenKeyEx 470 20.31.3 RegQueryValueEx 470 20.31.4 RegSetValueEx 471 20.31.5 RegDeleteKey 472 20.32 如何通过DDE利用Progman.exe创建 程序组和程序项 472 20.32.1 AddItem 472 20.32.2 CreateGroup 473 20.32.3 DeleteGroup 473 20.32.4 DeleteItem 473 20.32.5 ExitProgman 473 20.32.6 Reload 474 20.32.7 ReplaceItem 474 20.32.8 ShowGroup 474 20.33 如何创建ODBC数据源 474 20.34 如何在Windows NT下直接对并行 口进行操作 475 20.35 如何查询和设置系统参数信息 476 20.36 如何获取系统的度量信息和相关 的配置信息 476 |