第1章 Windows应用程序基础知识 1
1.1 Windows应用程序的基本概念 1
1.1.1 Windows应用程序的界面 1
1.1.2 Windows应用程序与AFI函数 2
1.1.3 Windows的一个特殊数据类型——句柄 2
1.1.4 Windows应用程序的数据类型 3
1.1.5消息与消息循环 4
1.2 Windows应用程序的结构 5
1.2.1主函数 5
1.2.2消息的处理部分——窗口函数 7
1.2.3 Windows系统、主函数、窗口函数之间的关系 8
1.3用C函数封装Windows程序 11
小结 13
习题 14
2.1.1窗体类的声明 15
2.1应用程序主函数的C++类封装 15
第2章 Windows应用程序的类封装 15
2.1.2应用程序类的声明 17
2.1.3主函数封装后的程序 18
2.2派生类的应用 22
2.2.1应用程序类的派生类 22
2.2.2窗体类的派生类 24
2.3窗口函数的封装——消息映射 28
2.3.1消息处理函数的简单封装 29
2.3.2消息映射 31
2.3.3消息映射的声明和定义 34
小结 37
习题 37
第3章 MFC应用程序框架 39
3.1早期的应用程序框架及其MFC类 39
3.1.1早期的应用程序框架 39
3.1.2MFC的窗口类 40
3.1.3CWinApp类 41
3.2最简单的MFC程序实例 42
3.2.1程序的编写 42
3.2.2程序主函数的代码 44
3.3应用程序的文档/视图结构及其框架类 46
3.3.1文档/视图结构的基本概念 46
3.3.2文档类CDocument 47
3.3.3视图类CView 48
3.3.4框架窗口类CFrameWnd 49
3.3.5文档模板类CDocTemplate 50
3.3.6应用程序类CWinApp 50
3.3.7程序员的主要工作 51
3.4对象的动态创建 52
3.4.1类信息表及其声明和实现 52
小结 53
3.4.2对象的动态创建 53
习题 54
第4章 图形 55
4.1 GDI和设备描述环境 55
4.1.1 GDI的基本概念 55
4.1.2设备描述环境 56
4.2CDC类 56
4.3 CPen类 58
4.4CBrush类 61
4.5绘图模式 64
4.6文本和CFont类 64
4.6.1显示文本 65
4.6.2字体和CFont类 68
4.7 CDC的其他派生类 70
4.7.1窗口用户区设备描述环境CClientDC类 70
4.7.2 图元文件设备描述环境CMetaFileDC类 71
习题 73
小结 73
第5章 MFC的通用类 75
5.1简单数据类 75
5.1.1点类CPoint 75
5.1.2矩形类CRect 76
5.1.3尺寸类CSize 77
5.1.4字符串类CString 77
5.2群体数据类 79
5.3数据在文档/视图结构程序中的位置 81
小结 82
习题 82
第6章 Windows应用程序界面的设计 85
6.1 SDI和MDI界面 85
6.2 SDI界面窗口的样式 86
6.2.1在MFC AppWizard中确定窗口样式 86
6.2.2在函数PreCreateWindow中修改窗口的样式 88
6.2.3可拆分为小窗口的SDI界面 90
6.3拆分窗口的同步更新 91
6.3.1拆分窗口的同步更新功能 91
6.3.2提高拆分窗口更新效率的方法 92
6.4创建带有滚动条的窗口 96
小结 100
习题 101
第7章 鼠标和键盘 103
7.1处理鼠标消息 103
7.1.1客户区鼠标消息 104
7.1.2非客户区鼠标消息 107
7.1.3鼠标消息的捕获 109
7.2处理键盘消息 110
7.2.1按键的虚拟码 110
7.2.2一般按键消息 112
7.3应用程序窗口的焦点 114
7.2.3系统按键消息 114
小结 116
习题 116
第8章 资源 119
8.1资源和资源文件 119
8.1.1资源脚本文件 119
8.1.2资源头文件 119
8.2菜单 120
8.2.1菜单资源的描述文件 120
8.2.2编辑现有的菜单 123
8.2.3自定义菜单 126
8.2.4用菜单编辑器编辑菜单 128
8.2.5菜单选项的动态修改 128
8.3.1在资源描述文件中定义快捷键表 132
8.3.2使用快捷键编辑器编辑快捷键表 132
8.3快捷键 132
8.4图标 133
8.4.1制作图标 133
8.4.2在应用程序中使用图标 133
8.5位图 134
8.5.1在资源描述文件中定义位图资源 134
8.5.2位图资源的使用 134
小结 137
习题 138
第9章 MFC的文件处理机制 139
9.1永久性对象与序列化 139
9.1.1序列化的基本概念 139
9.1.2永久性对象 140
9.1.3 Serialize函数 140
9.2对象的序列化 141
9.2.1 CArchive类 141
9.2.2程序实例 142
9.3 CFile类 146
小结 147
习题 148
第10章 控件 149
10.1标准控件及其使用 149
10.1.1标准控件 150
10.1.2静态文本控件 150
10.1.3按钮控件 152
10.1.4编辑控件 156
10.2通用控件 158
10.2.1进度条控件 158
10.2.2微调器控件 159
10.2.3图像列表控件 163
10.2.4列表视图控件 164
10.3控件的背景颜色 172
小结 174
习题 175
第11章 对话框 177
11.1对话框模板资源描述文件 177
11.2自定义对话框的创建 179
11.2.1 MFC的对话框类及用户自定义对话框类 179
11.2.2模态对话框 181
11.3对话框的数据交换和数据检验 185
11.3.1数据交换 185
11.3.2使用ClassWizard为对话框添加成员变量 187
11.3.3数据检验 189
11.4 以对话框为主界面的应用程序 190
11.4.1应用程序框架的设计 190
11.4.2应用程序代码的设计 190
11.5 MFC预置的通用对话框 193
11.5.1文件对话框 193
11.5.2字体选择对话框 195
11.6非模态对话框 198
11.7属性页 200
小结 203
习题 203
第12章 进程与线程的管理 205
12.1 进程、线程及其优先权 205
12.1.1进程、线程的基本概念 205
12.1.2进程和线程的优先级 205
12.2工作线程和用户界面线程 207
12.2.1工作线程的创建 207
12.2.2用户界面线程的创建 208
12.3线程同步 210
12.3.1线程同步的基本概念 210
12.3.2事件对象 211
12.3.3临界段 215
12.3.4互斥体 216
12.3.5信号计数器 218
12.4线程通信 220
12.4.1利用全局变量进行通信 220
12.4.2利用自定义的消息进行通信 222
小结 224
习题 224
第13章 动态链接库 225
13.1动态链接库概述 225
13.1.1动态链接库的基本概念 225
13.1.2动态链接库的组成 226
13.2动态链接库的创建 228
13.2.1导出函数的声明 228
13.2.2用MFC编写DLL 231
13.3动态链接库的使用 235
13.3.1隐式链接方式 235
13.3.2显式链接方式 235
习题 237
小结 237
14.1组件对象模型 239
14.1.1软件模块化的发展历程 239
第14章 组件对象模型基础 239
14.1.2组件应用程序的构成和组件对象模型 240
14.1.3组件的接口 241
14.1.4 COM的标识与注册 247
14.2在客户程序中使用组件 248
14.2.1组件对象的申请过程 248
14.2.2在客户程序中使用组件的方法 248
14.3组件的包含与聚合 250
14.3.1包含 250
14.3.2聚合 251
14.4进程外组件 252
14.4.1进程外组件的基本概念 252
14.4.2进程的透明性 252
14.5.1 ATL对COM的支持 253
14.5使用ATL设计组件 253
14.5.2使用ATL设计组件的步骤和方法 255
小结 258
习题 258
第15章 用MFC开发ActiveX应用 259
15.1 ActiveX技术概述 259
15.1.1 ActiveX的前身——OLE 259
15.1.2 ActiveX技术的起源 261
15.1.3 ActiveX容器和ActiveX服务器 261
15.1.4 ActiveX自动化应用程序 262
15.1.5 ActiveX控件 262
15.1.6 ActiveX文档 263
15.2用MFC设计ActiveX容器 263
15.2.1ActiveX容器的结构 263
15.2.2用MFC设计ActiveX容器的方法 264
15.3用MFC设计ActiveX服务器 266
15.4用MFC设计ActiveX自动化应用程序 268
15.4.1用MFC设计ActiveX自动化服务器 268
15.4.2用MFC设计ActiveX自动化客户 270
15.5用MFC设计ActiveX控件 273
小结 277
习题 277
第16章 用MFC设计数据库应用程序 279
16.1数据库系统及数据库应用程序 279
16.1.1数据库系统 279
16.1.2数据库应用系统的设计 280
16.2 ODBC的基本构成 280
16.3配置ODBC数据源 281
16.3.1 ODBC管理器 282
16.3.2 配置ODBC数据源的方法和步骤 282
16.4 MFC的ODBC类 284
16.4.1 CDatabase类 285
16.4.2 CRecordset类 287
16.4.3 CDBException类 290
16.5 ODBC应用程序实例 291
16.5.1 显示和处理表中的数据 291
16.5.2连接两个表 296
16.6使用DAO设计数据库应用程序简介 297
16.6.1 DAO简介 297
16.6.2 DAO和MFC 298
16.6.3 使用MFC DAO类编程 298
小结 299
习题 300
附录 301
附录A 数据类型与Windows句柄 301
附录B 标识符的匈牙利记法 302
参考文献 305