第1章 Visual C++ 6.0集成开发环境 1
1.1 Visual C++6.0工程及其文件构成 1
1.1.1 Visual C++中的文件 1
1.1.2 工作空间中的文件 2
1.1.3 可以创建的文件类型和工程类型 2
1.2 启动Visual C++ 6.0 4
1.2.1 Visual C++ 6.0的启动界面 4
1.2.2 Visual C++ 6.0的功能菜单 4
1.3 Visual C++ 6.0集成开发环境概述 8
1.3.1 项目工作区 9
1.3.2 应用程序向导AppWizard 9
1.3.3 向导ClassWizard 10
1.3.4 向导工具栏WizardBar 13
习题一 15
第2章 程序开发基础 16
2.1 C++语法基础 16
2.1.1 C++程序的构成 16
2.1.2 C++的语言基础 18
2.1.3 C++中的类与对象 21
2.1.4 类的继承和多态性 21
2.1.5 C++中的输入/输出流 23
2.2 AppWizard的使用 23
2.2.1 AppWizard第一步 24
2.2.2 AppWizard第二步 25
2.2.3 AppWizard第三步 25
2.2.4 AppWizard第四步 26
2.2.5 AppWizard第五步 27
2.2.6 AppWizard第六步 28
2.3 一个简单的应用程序 29
2.3.1 创建过程 29
2.3.2 编译、链接并运行程序 30
2.4 程序结构剖析 31
2.4.1 CAboutDlg类 31
2.4.2 CEg2_ 1 App类 32
2.4.3 CEg2_ 1Doc和CEg2_ 1 View类 32
2.4.4 CMainFrame类 35
2.5 Win32编程基础 36
2.5.1 Winm32数据类型 36
2.5.2 句柄 37
2.5.3 标识符命名 37
习题二 38
第3章 构造应用程序框架 39
3.1 单文档应用框架 39
3.1.1 创建过程 39
3.1.2 CEg3_1App应用程序运行过程 42
3.1.3 InitInstance()函数 42
3.2 多文档应用框架 44
3.2.1 创建过程 44
3.2.2 单文档应用程序和多文档应用程序的比较 45
3.3 基于对话框的应用框架 46
3.3.1 创建过程 46
3.3.2 InitInstance() 函数分析 47
3.4 程序运行流程分析 48
3.4.1 Windows的编程模式 48
3.4.2 MFC应用程序的运行过程 49
3.4.3 三种应用程序框架的异同 49
习题三 50
第4章 Microsoft类库基础 51
4.1 Microsoft类库概述 51
4.2 根类:CObject 51
4.3 MFC应用程序框架结构类 52
4.3.1 CWinApp类 52
4.3.2 CDocument类 53
4.3.3 CView类 54
4.4 MFC窗口类 55
4.5 MFC异常类 56
4.5.1 CMemoryException (Out-of-memory exception,内存不足异常) 56
4.5.2 CNotSupportedException (Request for an unsupported operation,系统不支持的操作) 56
4.5.3 CArchiveException (Archive-specific exception文件归档异常) 56
4.5.4 CFileException (File-specific exception,文件操作异常) 56
4.5.5 CResourceException (Windows resource not found or not creatable,资源未找到) 57
4.6 MFC文件类 57
4.6.1 打开和关闭文件 57
4.6.2 文件的读写 58
4.6.3 CStdioFile类 58
4.6.4 CMemFile类 58
4.6.5 CArchive类 58
4.6.6 CSocketFile类 58
4.7 绘图和打印类 59
4.7.1 设备环境类 59
4.7.2 图形对象类 59
4.8 ODBC类 60
4.8.1 CDatabase类 60
4.8.2 CRecordset类 60
4.8.3 CRecordView类 61
习题四 61
第5章 菜单、工具栏与状态栏 63
5.1 编辑菜单资源 63
5.1.1 系统生成的菜单 63
5.1.2 菜单的编辑 64
5.2 使用ClassWizard添加消息处理函数 69
5.2.1 为应用程序添加消息处理函数 69
5.2.2 MessageBox()函数 70
5.3 加入键盘加速键 70
5.3.1 键盘加速键的含义 70
5.3.2 添加键盘加速键 71
5.4 工具栏和状态栏 72
5.4.1 工具栏 72
5.4.2 用MFC创建工具栏 72
5.4.3 创建一个实际的工具栏 73
5.4.4 状态栏 78
习题五 81
第6章 对话框 82
6.1 消息映射 82
6.2 定义对话框 83
6.3 通用对话框 86
6.3.1 通用对话框 86
6.3.2 应用实例 86
6.4 消息对话框 87
6.5 属性页对话框 88
6.6 鼠标和键盘消息 90
6.6.1 鼠标消息 90
6.6.2 键盘消息 92
习题六 93
第7章 控件与功能函数 94
7.1 控件概述 94
7.1.1 控件的手工编辑 94
7.1.2 控件的操作和使用 94
7.1.3 用于常用控件的通知 95
7.2 静态控件 95
7.3 按钮控件 95
7.3.1 按钮控件的样式 96
7.3.2 类CButton 97
7.3.3 按钮控件消息 97
7.4 编辑框控件 97
7.4.1 编辑框控件的样式 97
7.4.2 CEdit类所有成员函数 97
7.4.3 编辑框控件消息 98
7.5 列表框控件 98
7.5.1 列表框控件样式 98
7.5.2 CListBox类常用成员函数 99
7.5.3 列表框控件消息 99
7.6 组合框控件 99
7.6.1 组合框控件样式 99
7.6.2 CComboBox类常用成员函数 100
7.6.3 组合框控件消息 100
7.7 滚动条控件 100
7.7.1 滚动条控件样式 100
7.7.2 CScrollBar类 101
7.7.3 滚动条控件消息 101
7.8 常用控件应用实例 102
7.8.1 创建对话框资源 102
7.8.2 生成对话框类 104
7.8.3 为控件建立相关联的成员变量 105
7.8.4 成员变量的初始化 106
7.8.5 建立消息映射与响应函数 106
7.8.6 函数建立与调用 107
7.8.7 重载其他函数 109
7.8.8 运行程序 110
习题七 110
第8章 高级控件 111
8.1 高级控件简介 111
8.2 动画控件 111
8.2.1 动画控件的样式 111
8.2.2 CAnimateCtrl类 112
8.3 标签控件 112
8.3.1 标签控件的样式 113
8.3.2 类CTabCtrl 113
8.3.3 标签控件的操作方法 113
8.3.4 应用实例 114
8.4 列表控件 115
8.4.1 列表控件的样式 115
8.4.2 CListCtrl类 115
8.4.3 应用实例 117
8.5 树形控件 118
8.5.1 树形控件的样式 118
8.5.2 CTreeCtrl类 118
8.5.3 应用实例 120
8.6 旋转按钮控件 121
8.6.1 旋转按钮控件的样式 121
8.6.2 CSpinButtonCtrl类 122
8.7 滑动条控件 122
8.7.1 滑动条控件的样式 122
8.7.2 CSliderCtrl类 123
8.8 进度条控件 123
8.8.1 进度条控件的样式 123
8.8.2 CProgressCtrl类 123
习题八 126
第9章 绘图与打印 127
9.1 设备环境类 127
9.1.1 设备环境类CDC 127
9.1.2 其他设备环境类 128
9.2 GDI对象 130
9.3 坐标与坐标模式 131
9.3.1 固定映射模式 132
9.3.2 可变映射模式 132
9.3.3 坐标转换 133
9.4 常用绘图函数 133
9.4.1 常用位置类 134
9.4.2 简单图形函数 134
9.5 绘图实例 135
9.6 字体 141
9.7 画刷 144
9.8 打印和打印预览 146
9.8.1 打印控制流程 146
9.8.2 打印循环 146
9.8.3 打印预览 147
9.9 Win7系统下高效绘图实例 150
习题九 151
第10章 访问数据库和文件读写 152
10.1 MFC提供的数据库访问类 152
10.1.1 CDatabase类 152
10.1.2 CRecordset类 154
10.1.3 CRecordView类 155
10.1.4 CDBException类 155
10.1.5 CFieldExchange类 155
10.2 建立、连接数据源 155
10.2.1 启动ODBC驱动程序 155
10.2.2 建立数据源 156
10.3 建立访问数据库的应用程序 157
10.3.1 建立并连接数据库 158
10.3.2 创建访问数据库的应用程序 158
10.4 实现数据访问 160
10.4.1 设计主窗体 160
10.4.2 添加变量 161
10.4.3 运行应用程序 162
10.5 增加和删除记录 163
10.5.1 增加新记录 163
10.5.2 删除记录 163
10.5.3 编辑记录 163
10.5.4 添加处理记录的功能 164
10.6 程序分析 166
10.6.1 三个主要函数的代码分析 166
10.6.2 程序运行机制分析 167
10.7 文件的读写 170
10.7.1 int fopen(string filename, string mode)函数 170
10.7.2 int fseek(int fp,int offset,[,int whence])函数 171
10.7.3 int rewind(int fp)函数 171
10.7.4 fread函数和fwrite函数 171
10.7.5 序列化 172
10.7.6 CFile类 173
习题十 173
第11章 MFC的进程和线程 175
11.1 Win32的进程和线程概念 175
11.1.1 进程的概念 175
11.1.2 线程的概念 175
11.2 进程编程 176
11.2.1 进程的创建 176
11.2.2 进程的管理和终止 177
11.2.3 取得和设置进程的优先级 178
11.2.4 进程的终止 178
11.2.5 判断一个进程是否终止 179
11.3 Win32中关于多线程的几个函数 179
11.3.1 线程的创建 180
11.3.2 CreatRemoteThread函数 180
11.3.3 SuspendThread和ResumeThread函数 181
11.3.4 ExitThread和TerminateThread函数 181
11.3.5 取得一个线程的优先级的函数 181
11.4 MFC中多线程的实现 182
11.4.1 与多线程编程相关的全局函数 182
11.4.2 CWinThread类 183
11.4.3 工作者线程的创建 185
11.4.4 创建用户界面线程 185
11.5 线程之间的通信 186
11.6 线程的调度和同步 186
11.6.1 临界段对象 187
11.6.2 互斥对象 187
11.6.3 事件对象 189
11.6.4 信号量对象 190
11.6.5 各种同步方法的比较 191
11.7 应用实例 192
11.7.1 用户界面的设计 193
11.7.2 新增成员变量及初始化 194
11.7.3 创建菜单响应函数 194
11.7.4 创建游戏者线程 195
11.7.5 创建机器线程 196
11.7.6 修改系统界面 198
11.7.7 运行程序 199
习题十一 199
第12章 串口通信程序的开发 201
12.1 串口通信的内部机制 201
12.1.1 Windows串行通信的工作原理 201
12.1.2 串行通信的操作方式 201
12.1.3 单线程与多线程下的串口通信 202
12.2 串口通信的实现 203
12.2.1 串口的初始化 203
12.2.2 串口的配置 204
12.2.3 超时设置 204
12.2.4 串口的写操作 205
12.2.5 串口的读操作 205
12.2.6 关闭串口 206
12.3 串口通信程序举例 206
12.3.1 建立基于对话框的程序 207
12.3.2 添加控件 207
12.3.3 建立按钮的消息响应函数 208
12.3.4 重载对话框类的初始化函数OnInitDialog() 209
12.3.5 程序运行结果 211
习题十二 212
第13章 动态链接库 213
13.1 DLL基础知识 213
13.1.1 DLL概述 213
13.1.2 DLL与LIB的区别 214
13.1.3 DLL与EXE的区别 214
13.1.4 DLL的两种动态链接方法 215
13.2 DLL入口/出口函数 216
13.2.1 DLLMain函数 216
13.2.2 MFC AppWizard生成的Regular DLL入口/出口 217
13.3 从DLL中导出函数 217
13.3.1 使用DEF文件导出函数 218
13.3.2 使用关键字_declspec(dllexport) 218
13.3.3 使用AFX EXT CLASS导出 219
13.4 DLL中的数据和内存 219
13.4.1 DLL多进程间的数据共享 219
13.4.2 DLL进程中多线程间的数据隔离 220
13.5 几种常用的DLL 220
13.5.1 Win32 DLL 221
13.5.2 Regular statically linked to MFC DLL 222
13.5.3 Regular using the shared MFC DLL 222
13.5.4 MFC Extension DLL 223
13.6 DLL的调用和调试 224
13.6.1 VC对DLL的调用 224
13.6.2 VB对DLL的调用 224
13.6.3 DLL的调试 224
13.7 DLL例程 225
13.7.1 使用己有的DLL 225
13.7.2 资源DLL 227
13.7.3 使用自己的DLL 233
习题十三 237
第14章 Android Eclipse集成开发环境 238
14.1 Android背景介绍 238
14.2 Android开发环境 238
14.2.1 Android开发环境概述 238
14.2.2 Android开发环境搭建 239
14.3 Eclipse集成开发环境介绍 245
14.3.1 Eclipse集成开发环境界面 245
14.3.2 Eclipse集成开发环境常用功能 248
习题十四 252
第15章 Android程序开发基础 254
15.1 Java语法基础 254
15.1.1 Java语言特性 254
15.1.2 Java标识符及关键字 255
15.1.3 Java数据类型 256
15.1.4 Java运算符 256
15.1.5 Java语句 256
15.1.6 Java数组和字符串 258
15.1.7 Java类、对象和接口 262
15.2 Android架构模型 266
15.2.1 Linux Kernel 266
15.2.2 Android Runtime 266
15.2.3 Libraries 267
15.2.4 Application Framework 267
15.2.5 Applications 268
15.3 创建第一个Android工程 268
15.3.1 创建工程 268
15.3.2 工程目录结构 271
习题十五 274
第16章 Android基本控件 275
16.1 TextView文本框 275
16.1.1 TextView类的结构 275
16.1.2 TextView类的方法 275
16.1.3 TextView标签的属性 276
16.1.4 TextView的使用 279
16.2 EditText编辑框 280
16.2.1 EditText类的结构 280
16.2.2 EditText类的方法 281
16.2.3 EditText标签的属性 281
16.2.4 EditText的使用 284
16.3 Button按钮 286
16.3.1 Button类的结构 286
16.3.2 Button类的常用方法 286
16.3.3 Button类的常用属性 286
16.3.4 Button类的使用 287
16.4 ImageButton图片按钮 288
16.4.1 ImageButton类的结构 288
16.4.2 ImageButton类的常用方法 288
16.4.3 ImageButton类的常用属性 289
16.4.4 ImageButton类的使用 289
16.5 Toast提示 291
16.5.1 Toast类的结构 291
16.5.2 Toast的常量 291
16.5.3 Toast类的方法 291
16.5.4 Toast类的使用 293
16.6 LinearLayout线性布局 294
16.6.1 线性布局介绍 294
16.6.2 线性布局的常用属性 294
16.6.3 线性布局常用的方法 295
16.6.4 线性布局的使用 295
16.7 RelativeLayout相对布局 296
16.7.1 RelativeLayout类的结构 296
16.7.2 RelativeLayout类的常用方法 297
16.7.3 RelativeLayout类的常用属性 297
16.7.4 RelativeLayout类的使用 298
习题十六 299
第17章 SQLite3数据库 300
17.1 SQLite3数据库概述 300
17.1.1 SQLite3数据库介绍 300
17.1.2 SQLite3数据库特性 301
17.1.3 SQLite3数据库组成结构 301
17.2 Android SQLite3数据库访问类 302
17.3 创建SQLite3数据库 303
17.3.1 SQLite3数据库设计 303
17.3.2 SQLite3数据库实现 303
17.3.3 SQLite3数据库实现解析 305
17.4 SQLite3数据库读写 305
17.4.1 定义Todoltem项 305
17.4.2 删除和修改Todoltem项 306
17.4.3 查询Todoltem项 307
习题十七 307
第18章 Android网络编程 309
18.1 Android网络编程概述 309
18.2 Android网络编程分类 310
18.2.1 基于HTTP协议的Android网络编程 310
18.2.2 基于Socket的Android网络编程 312
18.2.3 Android平台的其他网络编程技术 314
18.3 Android网络编程实现 315
18.3.1 使用标准Java接口进行网络编程 315
18.3.2 使用Org. apache接口进行网络编程 318
18.4 使用Fastjson传输数据 322
18.4.1 Fastjson介绍 322
18.4.2 Fastjson常用方法 323
18.4.3 使用Fastjson 323
习题十八 324
第19章 MFC网络编程及无线组网 326
19.1 网络编程基本概念 326
19.2 Winsock基础 327
19.2.1 Winsock API 327
19.2.2 WinSock的使用 329
19.3 MFC网络编程示例 335
19.3.1 基于TCP的网络编程示例 335
19.3.2 基于UDP的网络编程示例 337
19.4 使用json传输数据 339
19.5 无线组网 341
习题十九 343
第20章 MFC和Flash的交互 344
20.1 Flash介绍 344
20.1.1 Flash简介 344
20.1.2 Flash主要功能 344
20.1.3 Flash特性和发展前景 345
20.2 Flash脚本开发基础 345
20.2.1 Flash脚本基础知识 345
20.2.2 Flash数据类型 346
20.2.3 Flash关键字和变量 347
20.2.4 Flash影片剪辑事件与拖动 349
20.3 在MFC中使用Flash 350
20.3.1 MFC中添加ShockwaveFlash控件 350
20.3.2 ShockwaveFlash控件常用方法 352
20.3.3 在Flash和MFC之间传递消息 352
习题二十 353
参考文献 354