第1章 认识Visual C++.NET 1
1.1什么是.NET 1
1.2 Visual C++.NET的安装 2
1.3开发界面 4
1.3.1工作区窗口 5
1.3.2项目管理 6
1.3.3类管理 6
1.3.4资源管理 7
1.3.5属性窗口 8
1.4转换旧的项目 9
1.5应用程序向导 10
1.6添加映射 12
1.7调试工具 13
1.8不同的MSDN 16
1.9其他新鲜事物 18
1.10小结 19
第2章 面向对象的程序设计 20
2.1根本思想和要解决的根本问题 20
2.2代码重用 24
2.2.1应用程序重用方式 24
2.2.3接口重用 25
2.2.4源代码重用方式 25
2.2.2模块重用方式 25
2.2.5类代码重用 26
2.3接口设计 31
2.3.1类封装 31
2.3.2模板类 35
2.3.3深入接口设计过程 38
2.4小结 48
第3章 Windows 消息机制 49
3.1概述 49
3.2 发送消息的方式 50
3.3.1 MFC对于消息的Default处理 56
3.3 MFC中的消息机制 56
3.3.2 MFC中菜单、工具条、状态条的更新问题 57
3.4 MFC中的消息反射机制 62
3.4.1为什么需要消息反射 62
3.4.2消息反射的响应 62
3.4.3消息反射的响应顺序 64
3.4.4消息反射的例子 65
3.5遗留的问题 68
3.5.1消息循环的遗留问题 68
3.5.2处理MDI主框架客户区的消息 73
3.6指针与句柄 79
3.7小结 83
4.1概述 84
4.1.1对话框 84
第4章 对话框与控件编程 84
4.1.2控件 85
4.2定制dialog中的控件 86
4.3给对话框添加工具栏、状态栏和菜单 94
4.3.1在对话框中实现工具栏 94
4.3.2在对话框中实现状态栏 96
4.3.3在对话框中实现菜单 97
4.4在ToolBar中创建控件 98
4.5动态创建控件 100
4.6启动时隐藏对话框窗口 101
4.7子类化 105
4.8自定义控件 109
4.9控件的Owner Draw 116
4.10 Common Dialog扩展 121
4.11伸缩对话框 124
4.12小结 128
第5章 动态链接库 129
5.1概述 129
5.1.1认清DLL与LIB的真实面目 129
5.1.2 DLL的两种动态链接方法 130
5.1.3 DLL与EXE的关系 132
5.2 DLL编程细节 133
5.2.1 DLL编程必须注意的问题 133
5.2.2 DEF文件 134
5.2.3 DLL的载入过程 139
5.2.4 DLL变量 141
5.2.5 DLL的其他特性 144
5.3几种常用的DLL 145
5.3.1最简单的DLL 145
5.3.2资源DLL 148
5.4特殊的DLL应用 152
5.4.1控制面板应用 152
5.4.2屏幕保护程序 154
5.5模块的几种函数接口 166
5.5.1回调函数 167
5.5.2模块封装的发展趋势 170
5.6小结 171
第6章 ActiveX控件 172
6.1概述 172
6.2 ActiveX控件 173
6.2.1 ActiveX控件与Windows 控件 173
6.2.2 ActiveX控件与普通COM组件 174
6.3在Visual C++中使用ActiveX控件 177
6.4使用MFC开发ActiveX控件 182
6.4.1接口设计 183
6.4.2生成控件框架 187
6.5使用ActiveX控件子类化Windows 控件 206
6.6 ActiveX控件中的消息反射机制 207
6.7小结 210
第7章 多线程编程 211
7.1概述 211
7.2 Visual C++中多线程库支持 213
7.2.1 MFC提供的方法 214
7.2.2Win32提供的API函数 218
7.2.3 C运行库提供的函数 220
7.3线程操作 223
7.3.1线程暂停计数器 223
7.3.2线程的标识 223
7.3.3线程的返回值 224
7.3.4时程优先级 224
7.3.5线程优先级 227
7.3.6线程休眠 230
7.4 MFC与多线程 231
7.5多线程编程示例 232
7.6线程同步 238
7.6.1 Wait函数 238
7.6.2 Event(信号量) 244
7.6.3 Mutex(互斥量) 246
7.6.4 CriticalSection(关键代码) 248
7.6.5 Semaphore(信标) 249
7.7同一进程创建多个界面线程 251
7.8遗留的问题 254
7.9小结 261
8.1概述 263
8.2使用文件进行通信 263
第8章 进程间数据通信 263
8.3使用注册表进行通信 264
8.4使用特定的消息进行通信 266
8.5使用文件映射进行通信 275
8.6使用剪贴板进行通信 286
8.7使用读写进程内存方式进行通信 297
8.8使用管道进行通信 298
8.9使用共享数据段进行通信 309
8.10小结 318
9.1概述 319
第9章 COM接口 319
9.2 COM组件与C++类对象 325
9.3代理/残根DLL 329
9.4 BSTR 330
9.5几个常用的接口 333
9.5.1 IUnknown 333
9.5.2 IDispatch 333
9.5.3 IObjectWithSite 335
9.5.4 IConnectionPoint与IConnectionPointContainer 336
9.5.5 IOleCommandTarget 340
9.5.6永久化接口 344
9.6.1浮动按钮例子 345
9.6几个例子 345
9.6.2 IE插件例子 355
9.7 MFC中接口的实现 361
9.8小结 368
第10章 Shell编程 369
10.1概述 369
10.2几个常用的Shell功能函数 369
10.2.1 ShellExecute与ShellExecuteEx 369
10.2.2 SHBrowseForFolder 372
10.2.3 SHFileOperation 379
10.2.4 SHGetFileInfo 382
10.2.5 SHGetSpecialFolderLocation与SHGetSpecialFolderPath 386
10.2.6 SHGetSettings 389
10.2.7 SHAutoComplete 390
10.2.8 Shell-NotifyIcon 391
10.3文件拖放支持 394
10.4 Shell常用接口 403
10.4.1 Shell扩充使用的接口 404
10.4.2 Shell名字空间扩展使用的接口 407
10.5小结 421
第11章 数据组织 422
11.1概述 422
11.2 MFC提供的数据组织手段 422
11.2.1 CObject 423
11.2.2 MFC类库提供的数据结构 427
11.3 窗口属性 429
11.4 线程内数据组织 431
11.5 Owner-Draw的组织数据 434
11.6 Block Memory 438
11.7小结 445
附录A Visual C++编程风格 446
A.1变量风格 446
A.2文件风格 447
A.2.1文件生成 447
A.3.1函数注释 448
A.3函数风格 448
A.2.3空行约定 448
A.2.2文件头部注释 448
A.3.2代码缩进 449
A.4注释风格 449
A.5小结 449
附录B 推荐书目 450
C++基础书籍及提高书籍 450
MFC编程书籍 450
Windows 编程技术书籍 451
面向对象编程书籍 452
COM书籍 452
附录C 光盘使用说明 453