第1章 Visual C++.NET的界面 1
l.l 运行 Visual Studio.NET 2
l.1.l 编辑测览区 2
1.1.2 辅助工作区 4
l.2 第1个Visual C++.NET的应用程序 5
第2章 C++编程基础 16
2.1 C++基础 17
2.1.1 面向对象的理念 17
2.1.2 new、delete和this指针 20
2.1.3 函数重载 21
2.1.4 运算符重载 22
2.1.5 类的继承 23
2.1.6 虚函数和纯虚函数 24
2.1.7 模板 25
2.1.8 类型的转换 28
2.1.9 异常的处理 29
2.1.10 一个简单的C++程序 30
2.2 Windows编程基础 33
2.2.1 Windows操作系统的特点 33
2.2.2 过程驱动和事件驱动 34
2.2.3 消息循环与输入 35
2.2.4 图形输出 36
2.2.5 用户界面对象 36
2.2.6 资源共享 39
2.2.7 Windows应用程序的组成 39
2.3 MFC基础 41
2.3.1 MFC的概念 41
2.3.2 MFC的结构体系 42
2.3.3 MFC中常用类简介 43
2.3.4 MFC应用程序的基本批架 47
第3章 文档与现国(-) 64
3.1 文档/视图结构 65
3.1.l 文档视图结构的概念 65
3.1.2 框架窗口类与框架窗口对象 66
3.1.3 手动创建框架窗口 66
3.l.4 理解MFC应用程序向导创建框架窗口的方法 67
3.1.5 文档模板CDocTemplate类与文档对象 69
3.1.6 视图CView类与视图对象 72
3.1.7 文档、视图、框架、应用对象之间的通信 72
3.2 单文档/视图程序(SDI) 73
3.2.l 程序的建立 73
3.2.2 实例:我的画板1 74
第4章 使用对话框(-) 84
4.l 对话枢的概念 85
4.2 对话框的设计 86
4.2.l 在程序中新建一个对话框 86
4.2.2 设计对话框 88
4.2.3 对话框类CDialog及其与资源的连接 90
4.2.4 数据交换与DoDataExchange()函数 92
4.3 程序中对话框的初始化和显示 94
4.3.1 模态对话框和非模态对话框的初始化 95
4.3.2 对话框的返回值和显示 96
4.4 常用的标准对话框 97
4.4.l 文件对话框(CFileDialog) 97
4.4.2 颜色选择对话框 97
4.4.3 字体选择对话框 98
第5章 图形设备接口 99
5.1 图形设备类 100
5.1.l 客户区图形设备CClientDC 100
5.1.2 窗口画面图形设备CPaintDC 101
5.l.3 用CWindowDC管理图文框窗口 102
5.2 坐标、映射模式与绘图模式 102
5.2.1 GDI坐标 102
5.2.2 逻辑映射模式 103
5.2.3 绘图模式 103
5.3 与绘图相关的常用类与结构 104
5.3.1 POINT结构和CPoint类 104
5.3.2 RECT结构和CRect类 105
5.3.4 CRgn类 106
5.3.3 SIZE结构和CSize类 106
5.4 画刷 108
5.4.1 CBrush类 108
5.4.2 画刷的创建与调用 108
5.5 画笔 109
5.5.1 CPen类 109
5.5.2 画笔的创建与调用 110
5.6 位图 111
5.6.1 CBitmap类与BITMAP结构 111
5.6.2 位图资源的利用 112
5.6.3 位图的创建与显示 112
5.7 字体 113
5.7.1 LOGFONT结构和CFont类 113
5.7.2 字体的创建与文本输出 115
5.8.1 UpdateAllViews和ValidateRect、UpdateWindow函数 117
5.8 设备更新与重画 117
5.8.2 OnInitialUpdate函数和OnUpdate函数 118
5.8.3 OnDraw函数 119
5.9 实例:简单的动画效果 119
第6章 文档与视图(二) 127
6.1 多文档/视图程序(MDI) 128
6.1.l 程序的建立 128
6.1.2 实例:我的画板2 131
6.2 多视图程序 136
6.2.1 视图的分割 136
6.2.2 多视图与文档之间的通信 138
6.2.3 实例:我的画板3 139
第7章 控件的使用(-) 145
7.1.1 按钮类 146
7.l 常用的控件 146
7.1.2 文本框 148
7.1.3 列表框 151
7.1.4 组合框 154
7.1.5 静态控件 157
7.2 控件的静态加入 159
7.3 控件的动态生成 160
7.4 一个使用控件的例子 160
第8章 使用对话框(二) 170
8.l 基于对话框的应用程序框架 171
8.1.l 程序建立 171
8.1.2 代码分析 173
8.2 对话柜中控件的动态增减 179
8.3 属性选项卡与向导 181
8.3.1 属性选项卡对话枢的创建 182
8.3.2 属性选项卡对话框的运行机制 184
8.3.3 向导的生成 185
8.4 实例:数字游戏 186
8.4.l 生成程序框架 186
8.4.2 【猜数字】选项卡 187
8.4.3 【测验】选项卡 189
8.4.4 属性表的生成 191
第9章 程序界面设计 195
9.l 菜单的设计 196
9.1.l 利用资源编辑器编辑菜单 196
9.1.2 同菜单有关的类 198
9.1.3 映射菜单命令到成员函数 199
9.2.1 工具栏的制作和使用 201
9.2 工具栏和状态栏 201
9.2.2 工具栏类 203
9.2.3 工具栏在框架中的创建和显示 205
9.2.4 状态栏的创建与修改 207
9.3 其他资源 208
9.3.l 位图资源的建立与使用 208
9.3.2 使用加速键和组合键 209
9.3.3 对话框资源的建立与使用 211
9.3.4 使用字符串资源 211
9.4 窗体风格的定义 213
9.5 使自己的程序更个性化 214
9.5.1 让窗口变成椭圆形 215
9.5.2 离开灰色的世界 216
9.5.3 让窗口不可移动 217
第10章 捷件的使用(二) 218
10.l 高级控件 219
10.1.l 进度栏控件 219
10.1.2 滑块控件 223
10.1.3 动画控件 228
10.1.4 树形控件 231
10.1.5 选项卡控件 236
10.2 使用第三方控件 237
10.3 使常用的控件更个性化 242
10.3.l 个性化的按钮 243
10.3.2 个性化的文本框 245
第11章 文件与打印 249
11.1.1 CFile类 250
11.1 文件的读写 250
11.1.2 序列化与CArchive类 251
11.2 打印 252
11.2.1 建立一个支持打印的框架 252
11.2.2 CPrintInfo类与打印相关函数 254
11.3 实例:我的画板 4 256
第12章 动态库 260
12.1 动态库的概念 261
12.1.l 静态库 262
12.1.2 动态库 263
12.2 动态库的连接 264
12.2.1 动态库的显式连接 264
12.2.2 动态库的隐式连接 265
12.3 用户动态库 265
12.4 MFC扩展类库(_AFXDLL) 268
12.5 动态库的实例:每天一帖 271
第13章 多线程 273
13.l 进程与线程 274
13.2 线程的启动与停止 275
13.3 线程之间的通信与同步 276
13.3.l 同步的必要性 276
13.3.2 等待函数 277
13.3.3 同步对家 278
13.4 使用工作者线程 279
13.5 使用用户界面线程 286
13.6 无窗口的内部应用进程 290
第14章 COM(组件对象模型) 293
14.1.1 IUnknown接口 294
14.1 COM在C++中的形式 294
14.1.2 IDispatch接口 296
14.1.3 接口的访问 297
14.2 COM的一个成熟的实现OLE(对象链接和嵌入) 299
14.2.1 OLE容器(Container) 299
14.2.2 OLE全服务器(Full-Server) 299
14.2.3 OLE小型服务器(Mini-Server) 300
14.2.4 利用应用程序向导生成一个简单的OLE容器/完全服务器(Container/Full-Server) 300
14.2.5 容器功能的增强 308
14.3 ActiveX控件 311
14.3.l 事件(Event) 312
14.3.2 属性(Property) 312
14.3.3 方法(Method) 313
14.3.4 建立自己的ActiveX控件 313
14.3.5 检测自己创建的ActiveX控件 322
第15章 数据库编程 324
15.1 数据库的基本知识 325
15.2 ODBC简介 325
15.3 DAO类 329
15.4 ADO(ActiveXDataObjects)技术 330
15.4.1 ADO的特点 331
15.4.2 ADO编程模型 332
15.4.3 ADO接口简介 332
15.4.4 ADO库 333
15.5 实例:通讯录 333
15.5.1 利用ODBC类创建一个简单数据库程序 334
15.5.2 创建一个ADO的程序 341
第16章 网络编程 348
16.1 利用CHtmlView创建一个简单的Web浏览器 349
16.2 WinInet接口 354
16.2.1 MFC WinInet类的特点 355
16.2.2 WinInet中的类 355
16.2.3 利用WinInet创建一个简单的FTP客户程序 358
16.3 MFC的Socket编程 365
第17章 异常处理与调试 372
17.l 异常捕捉与处理 373
17.2 异常类CException 376
17.3 利用MFC中的调试宏 378
17.3.1 TRACE宏 378
17.3.2 ASSERT宏 379
17.3.3 VERIFY宏 380
17.3.4 ASSERT_VALID宏 381
17.4 利用Visual C++.NET的调试工具 382