| |
| 《CodeGuru Visual C++编程精粹》[已经缺货] | |
| |
| |
内容简介 本书面向中高级程序员,读者至少需要具备Visual C++ 6.0 的实际编程经验,并对微软基础类库有所了解。本书的目的不是讲解特定的编程技巧,而是深入探索CodeGuru.com网站,介绍其中的文章、评论精华。本书章节按逻辑编排、精心组织,读者在阅读时,可以将它当成一本纯粹的技术参考书,用它快速找到难题的答案;也可以当成一本通读的资料集,从中发掘一些具有创造性、开拓性的思想,用于改进代码。 Nigel是CodeGuru.com的活跃撰稿人,也是本书的项目编辑,他是Qubit Automation的首席技术官,也是Computerlink Technology公司的创始人,该公司是圣地亚哥一流的软件研究开发公司。 CodeGuru(www.codeguru.com)是由程序设计领域的教师、程序员和专业人士组成的社区,这里凝聚了全球数百万程序员的优秀代码与知识精华。 本书是CodeGuru中上百篇优秀技术文章、评论精粹的汇编。全书分8部分、共42章,内容包括Windows编程、控件技术、图形与多媒体、数据库技术、网络编程和COM技术等方面。 本书适合具备Visual C++编程基础知识的程序员作为参考书使用。 | |
|
顾客评论 |
|
目录 第一部分 C 和MFC 第1章 起步 2 1.1 句柄和消息技术内幕 3 1.2 C 精髓 4 1.3 Visual C IDE和工作区 8 1.4 MFC基础 9 1.5 基于对话框的应用程序 10 1.6 SDI和MDI应用程序 11 1.7 数据查看器 12 1.8 什么是线程 20 1.8.1 引言 20 1.8.2 何谓线程 20 1.8.3 为什么要使用多线程 22 1.8.4 更复杂的情况 22 第2章 数组和集合 24 2.1 从变体型安全数组设置和获取值的函数 25 2.2 遍历表容器 26 2.3 可排序CObArray类 28 2.4 可排序CObList类 32 第3章 文档和视图 37 3.1 体验MFC:创建一个MFC应用程序 38 3.1.1 隐藏代码 38 3.1.2 一个简单的MFC应用程序 38 3.1.3 单文档界面应用程序 40 3.1.4 结论 41 3.2 使用更理想跟踪来理解文档/视图结构 41 3.2.1 目的 42 3.2.2 运行演示程序 42 3.2.3 在程序中使用CIndentedTrace 43 3.2.4 CIndentedTrace的工作方式 45 3.2.5 供更高级用户参考 46 3.3 分割框之上的命令传递 48 3.4 在文档-视图应用程序中替换视图 49 第二部分 Visual Studio 第4章 调试 55 4.1 一些常规调试技巧 56 4.1.1 以简单. “傻瓜”化方式亲密接触 56 4.1.2 使用调试窗口 56 4.1.3 使用所有可用资源 56 4.1.4 阅读, 阅读, 再阅读 56 4.2 为什么我的项目在发行模式下不工作 57 4.2.1 预处理器的差异 57 4.2.2 变量初始化差异 57 4.2.3 是否忽略了编译器警告 58 4.2.4 是否删除了任何资源 58 4.2.5 在发行模式中调试 58 4.2.6 补充 58 4.3 扩展Visual Studio 6.0调试器——利用未正式入档的功能 59 第5章 插件和宏 63 5.1 WM_COMMAND用户消息宏 64 5.2 插件Project Line Counter v1.11 67 5.2.1 描述 68 5.2.2 特征 68 5.2.3 源代码 68 5.2.4 新版本的更新 68 5.3 文件对话框宏 69 5.3.1 FileDialogHandler 69 5.3.2 对WriteLn的注释 73 5.4 注释/取消注释与其他宏 73 第三部分 Windows编程 第6章 Windows CE 80 6.1 CCeButtonST v1.2 81 6.1.1 摘要 81 6.1.2 如何在应用程序中集成CCeButtonST 82 6.1.3 类方法 83 6.1.4 评论 90 6.1.5 补充 90 6.2 CCeFileFind——Windows CE的文件查找类 92 6.3 检测WindowsCE中的内存泄漏 93 6.3.1 引言 93 6.3.2 调试技巧 93 6.3.3 工作方式 94 6.3.4 补充 94 第7章 剪贴板 96 7.1 基本复制/粘贴和拖/放支持 97 7.1.1 综述 97 7.1.2 在剪贴板上放置数据 97 7.1.3 串行化到剪贴板 97 7.1.4 从剪贴板读取数据 98 7.1.5 从剪贴板串行化 99 7.1.6 拖/放支持 100 7.1.7 维护的问题 102 7.1.8 补充 102 7.2 高级复制/粘贴和拖/放支持 102 7.2.1 引言 102 7.2.2 在剪贴板上放置多种格式 103 7.2.3 延迟实施 105 7.2.4 常见剪贴板格式 107 7.2.5 剪贴板优先顺序 110 第8章 动态链接库 .DLL 111 8.1 MFC .DLL向导 一 112 8.1.1 不同.DLL类型 112 8.1.2 构建.DLL 113 8.1.3 在客户应用程序中使用.DLL 115 8.1.4 警告 117 8.2 MFC .DLL向导 二 117 8.2.1 MFC问题 117 8.2.2 编译器不兼容性问题 117 8.2.3 重新编译 118 8.2.4 解决方案 118 8.2.5 结论 121 8.3 MFC .DLL向导 三 121 8.3.1 从.DLL 中导出资源 121 8.3.2 建立客户应用程序 122 8.3.3 导出基于CDialog的类 123 第9章 文件和文件夹 125 9.1 GetFolder:Shell扩展文件夹浏览器函数 126 9.1.1 综述 126 9.1.2 代码 126 9.1.3 补充 127 9.2 SHFILEOPSTRUCT和SHFileOperation 129 9.2.1 引言 129 9.2.2 解决名字冲突与hNameMappings成员 129 9.2.3 获取文件名 130 9.2.4 示例代码 130 9.3 优化SHGetFileInfo获得最优性能 131 第10章 打印 133 10.1 生成WYSIWYG文本输出 134 10.2 改进打印预览工具栏 137 第11章 系统 140 11.1 进程和模块枚举类 141 11.2 从HWND获取模块 exe 文件名 141 11.3 NotQuiteNullDacl类 143 11.3.1 缺省的安全性并不总是完全令人满意 143 11.3.2 Null Dacl解决方案 144 11.3.3 求助于NotQuiteNullDacl 145 11.3.4 使用NotQuiteNullDacl类 146 11.3.5 一些副作用 148 11.3.6 参考文献 148 11.4 共享内存进程间通信 IPC 148 第四部分 控件 第12章 Button控件 165 12.1 从CStatic派生的平面按钮类 166 12.1.1 描述 166 12.1.2 小结 166 12.2 标题栏界面 167 12.3 CXPStyleButtonST v1.0 171 12.3.1 摘要 171 12.3.2 如何在应用程序中集成CXPStyleButtonST 172 12.3.3 静态创建CXPStyleButtonST对象 172 12.3.4 动态创建CXPStyleButtonST对象 173 12.3.5 类方法 173 12.3.6 评论 174 12.3.7 致谢 174 12.4 CCharSetBtn控件 174 第13章 ComboBox控件 176 13.1 包含选项历史的CComboBoxEx 177 13.1.1 摘要 177 13.1.2 如何使用 177 13.1.3 函数 178 13.2 包含选项工具提示的ComboBox 179 13.3 具有树形下拉框的ComboBox 181 13.3.1 使用类 181 13.3.2 补充 182 13.4 CCheckComboBox:具有复选树形下拉框的ComboBox 183 第14章 Edit控件 186 14.1 自动填充编辑控件 187 14.2 综合提示文本和编辑控件的混合编辑控件 187 14.2.1 引言 187 14.2.2 显示规则 188 14.2.3 使用CGreyEdit控件 188 14.3 Masked Edit控件 3 189 14.4 Numeric Edit和Numeric Spin控件 192 第15章 ImageList控件 194 15.1 作为32bpp位图在ImageList中载入8bpp 256色 位图 195 第16章 ListBox控件 198 16.1 双向ListBox选择管理器 199 16.2 类似Visual Studio的ListBox类 201 16.2.1 如何使用 202 16.2.2 其他改进 203 16.2.3 补充 203 第17章 ListView控件 208 17.1 通过编程的办法选择某一项 209 17.2 使用回调排序列表 数字/文本 209 17.2.1 第1步:实现类 209 17.2.2 第2步:实际运用 213 17.2.3 补充 213 17.3 无限制 多选项的CreateDragImage 214 17.4 可修改的属性列表控件 217 17.4.1 工作原理 218 17.4.2 如何使用 218 17.4.3 如何实现自定义属性项值类 218 17.5 如何自定义属性列表项值类 219 17.6 如果实现自定义属性项管理器类 220 17.7 改进的地方 222 第18章 菜单 227 18.1 具有图标的自绘菜单 3 228 18.1.1 版本3.0中的新变化 228 18.1.2 引言 229 18.1.3 安装 MDI应用程序 229 18.1.4 安装 SDI应用程序 232 18.1.5 补充 233 第19章 对话框 236 19.1 更改编辑控件的背景色 237 19.2 可调节对话框基类 240 19.2.1 引言 240 19.2.2 用法 241 19.2.3 项目实例 241 19.3 不规则形状的位图对话框 241 19.3.1 用法 241 19.3.2 技巧 243 19.3.3 工作原理 243 19.3.4 补充 243 第20章 属性表 247 20.1 在属性页中使用ON_UPDATE_COMMAND_UI 248 第21章 状态栏 251 21.1 在状态栏显示光标位置 252 21.2 在状态栏窗格显示进度栏 253 第22章 工具栏 256 22.1 使用16M色图像的工具栏 257 22.2 全功能24位色工具栏 257 22.3 并排停靠工具栏 261 第23章 TreeView控件 264 23.1 查找项 匹配TV_ITEM的任何成员 265 23.2 拖放改进——鼠标停留时自动展开 267 第24章 Splitter控件 270 24.1 最小化拆分器 271 24.2 能在任何窗格中切换视图的CSplitterWnd扩展 273 24.2.1 如何使用示例代码 274 24.2.2 要点 274 24.2.3 补充 275 24.3 在拆分器窗格内实现标尺 275 24.3.1 引言 276 24.3.2 代码 276 24.4 拆分器窗口内的工具栏 277 24.4.1 引言 277 24.4.2 代码 277 第25章 其他控件 280 25.1 内存查看器——包含一个针对任意文本编辑器类型的强大类 281 25.1.1 摘要 281 25.1.2 普通文本编辑器是如何工作的 281 25.1.3 CSW_EditorBase类成员 282 25.1.4 如何使用类CSW_EditorBase 283 25.2 系统映像列表 284 25.3 CMacButton. CMacCheckBox和CMacRadioButton 285 25.4 类似Macintosh的进度控件 286 25.4.1 公有成员函数 287 25.4.2 在对话框中添加CMacProgressCtrl的步骤 287 25.4.3 补充 287 第五部分 图形和多媒体 第26章 位图和调色板 289 26.1 在CBitmap中装载位图文件的快速方法 290 26.2 调整图像大小时如何保持长宽比例 290 26.3 透明位图:真正的屏蔽方法 292 26.3.1 代码的作用 292 26.3.2 MSDN 293 26.3.3 真正的屏蔽方法 293 26.3.4 如何使用 293 26.3.5 源代码 293 26.3.6 透明显示位图 Zafir Anjum 294 26.3.7 直接透明blt操作 294 26.3.8 补充 295 26.4 CPicture:Yovav编写的显示图像的类 296 26.5 在MFC和ATL项目上添加GIF动画 299 第27章 DirectX 303 27.1 使用Direct3D8的基础知识 304 27.1.1 引言 #include windows.h 304 27.1.2 关于例程 304 27.1.3 何谓Direct3D8 Direct3D8=2* Direct3D7 DirectDraw7 305 27.1.4 初始化 即如何开始 306 27.1.5 从f x, y = x y z到2D图像 308 27.1.6 光照管理 黑暗中的猫都是灰色 310 27.1.7 材质管理 材质为什么是灰色 311 27.1.8 结论 311 第28章 GDI 314 28.1 检测显示字体大小 315 28.1.1 引言 315 28.1.2 检测字体大小的函数 315 28.2 绘制箭头线 316 28.3 IPicture对象的流动 319 28.3.1 类 319 28.3.2 使用类 321 第29章 多媒体 323 29.1 直接从资源播放MIDI文件 324 29.1.1 引言 324 29.1.2 公有接口 324 29.1.3 可覆盖的方法 325 29.1.4 用法 325 29.1.5 补充 326 29.2 CDR.EXE——通过编程实现CD驱动器的打开/关闭 326 29.3 透明动画控件 328 29.4 简单混音器控件封装器 330 29.5 具有n道实时混音器的音频类库 332 第30章 OpenGL 335 30.1 简单OpenGL类 336 30.1.1 特征 336 30.1.2 历史 336 30.1.3 源代码 337 30.1.4 支持类 337 30.1.5 演示项目 337 30.1.6 关于作者 337 30.2 在对话框中启动OpenGL 338 30.3 启动渲染模式 340 第六部分 数据库 第31章 ADO 342 31.1 ADO是AOK 简单ADI向导 343 31.1.1 起步 343 31.1.2 _ConnectionPtr. _CommandPtr和_RecordsetPtr 343 31.1.3 动态绑定与DFX 345 31.1.4 何谓_variant_t和_bstr_t 346 31.1.5 更新. 插入和删除 346 31.1.6 示例代码 347 31.1.7 补充 348 31.2 ADO是AOK——第二部分 349 31.2.1 使用ATL创建泛型ADO COM对象 349 31.2.2 组件 354 31.2.3 技巧 367 31.2.4 结论 369 31.3 使用ADOX创建数据库对象 369 31.3.1 概述 370 31.3.2 步骤 370 31.3.3 补充 372 第32章 ODBC 373 32.1 交互式SQL工具 MFC 374 第33章 存储过程 376 33.1 使用ADO执行存储过程 377 第34章 XML 381 34.1 从C 程序创建XML文件 382 34.2 使用微软XML解析器创建XML文档 383 34.2.1 MXXMLWriter组件基础知识 383 34.2.2 处理XML文档基础知识 384 34.2.3 使用MXXMLWriter创建XML文档 386 34.2.4 结论 388 第七部分 因特网与网络 第35章 Socket编程 392 35.1 具有新面孔的聊天室 393 35.1.1 前言 393 35.1.2 基础 393 35.1.3 使用CSocket的优点 394 35.1.4 图示和解释 394 35.1.5 如何测试程序 395 35.1.6 特征 395 35.1.7 已知漏洞 396 35.1.8 改进建议 396 35.1.9 致谢 396 35.1.10 声明 397 第36章 命名管道 399 36.1 Win32平台下命名管道封装器 400 36.1.1 背景 400 36.1.2 封装器 400 36.1.3 示例 400 36.1.4 补充 401 36.2 连接管道类 402 36.2.1 目的 403 36.2.2 主要特征 403 36.2.3 简介 403 36.2.4 客户-服务器架构 404 第37章 网络信息 406 37.1 获得本地计算机的主机名和IP地址 407 37.2 检验是否连接到因特网的函数 409 37.2.1 致谢 409 37.2.2 工作原理 409 37.2.3 函数 410 37.3 使用HTTP的PC时钟同步 411 37.3.1 引言 411 37.3.2 使用Windows API阅读WWW网站 412 37.3.3 世界时与本地时 413 37.3.4 链接 413 37.3.5 VC 源代码 413 第八部分 基于COM的技术 第38章 COM 418 38.1 基于MFC COM DLL的DllUnregisterServer 419 38.2 在COM中传递二进制数据 421 38.2.1 使用CBufferVariant 422 38.2.2 补充 423 38.3 未在文档中说明的AFX函数:AfxGetClassIDFromString 424 38.3.1 综述 424 38.3.2 示例 424 38.4 使用COM通道钩子机制的COM委托 424 38.4.1 接口用法 427 38.4.2 源代码. 演示程序. 更新及其他 427 38.4.3 致谢 427 第39章 DCOM 430 39.1 COM安全性入门 第一部分 431 39.1.1 激活安全性 431 39.1.2 COM编程技巧一 432 39.1.3 访问安全性 432 39.1.4 COM编程技巧二 434 39.1.5 下一篇文章内容预告:介绍身份和认证 434 39.2 COM安全性入门 第二部分 434 39.2.1 身份 434 39.2.2 COM编程技巧三 437 39.2.3 认证 437 39.2.4 总结 439 39.3 远程实例化_com_ptr_t对象 440 39.4 RNSO——运用DCOM的远程通知者. 主题和观察者服务器 442 39.4.1 何谓RNSO 442 39.4.2 RNSO的工作原理 442 39.4.3 RNSO的二进制文件 443 39.4.4 例程 443 39.4.5 为什么使用此框架 444 第40章 ActiveX 445 40.1 ActiveX控件向导 446 40.1.1 引言 446 40.1.2 创建ActiveX控件 446 40.1.3 关于作者 455 40.1.4 补充 455 40.2 ActiveX Shell注册 455 40.2.1 自动安装 456 40.2.2 手工安装 456 40.2.3 用法 457 40.2.4 补充 458 40.3 ActiveX控件中的菜单 458 40.3.1 ATL 459 40.3.2 MFC 461 第41章 ATL和WTL 463 41.1 一个查看类型库信息的ATL项目 464 41.1.1 Lib2Usr ATL组件 464 41.1.2 演示程序和更新过的源代码 464 41.2 ATL Tear-Off接口 466 41.3 运用WTL进行DDX和DDV 473 41.3.1 引言 473 41.3.2 DDX/DDV的准确涵义 474 41.3.3 DDX实战 475 41.3.4 在WTL扩展DDX 478 41.3.5 缺省数据处理器 480 第42章 单元和线程 481 42.1 理解COM单元 第一部分 482 42.1.1 单元基础知识 482 42.1.2 如何给线程分配单元 484 42.1.3 如何给进程中对象分配单元 485 42.1.4 如何给进程外对象分配单元 487 42.1.5 小结 487 42.2 理解COM单元 第二部分 488 42.2.1 编写能正常工作的COM客户 488 42.2.2 编写能正常工作的COM服务器 490 42.2.3 小结 492 42.3 精通COM线程模型 493 索引 502
| |
CodeGuru Visual C++编程精粹-相关图书 ·万用电表使用技巧60例 ·电子元器件应用手册 ·CCNA 自学指南 Cisco 网络设备互连:第2版 ·3ds max艺术效果100例 ·WCDMA无线网络工程 ·21天学通Java 2:第3版:专业参考版 ·CCNA INTRO认证考试(640821)指南:640~8 ·AdobeInDesignCS标准培训教材 ·Visual Basic程序设计学习辅导和典型习题解析 ·思科网络技术学院教程.第3、4学期:第三版 ·语音与数据布线基础:实验手册 ·网络信息资源组织和检索 ·Java 编程基础 ·新型显示器集成电路实用手册 ·单片机典型模块设计实例导航 ·巧学巧用Dreamweaver、Fireworks、Flas ·无师自通:电脑入门篇 ·运营战略 ·CCNP BSCI认证考试(642-801)指南(第三版)( ·PLC可编控制器系统开发实例导航
|
| |