Windows程序设计教程(第2版)

Windows程序设计教程(第2版)
作 者: 王秀梅
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 工学 教材 研究生/本科/专科教材
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Windows程序设计教程(第2版)》作者简介

内容简介

《21世纪高等教育计算机规划教材:Windows程序设计教程(第2版)》共分为16章,主要内容包括Windows编程概述,Windows应用程序的类封装,MFC应用程序框架,Windows绘图程序设计,文本和字体,消息,菜单、键盘和鼠标,子窗体控件,对话框,文档/视图结构的应用程序开发,动态链接库,VC数据库编程,多线程编程,串口通信编程以及Windows网络编程等内容。书中对开发过程中的一些开发技巧进行了展示,按照实际开发流程对实现功能进行详细讲解。《21世纪高等教育计算机规划教材:Windows程序设计教程(第2版)》内容丰富、结构新颖、难度适中、实用性强,可作为普通高等院校Windows程序设计课程的教材,也可供Windows开发初学人员参考阅读。

图书目录

目 录

第1章 Windows程序设计基础 1

1.1 Windows简介 1

1.1.1 Windows的发展历程 1

1.1.2 Windows的特点 3

1.2 操作系统的功能及分类 3

1.2.1 操作系统的功能 3

1.2.2 操作系统的分类 4

1.3 API与MFC 5

1.3.1 API简介 5

1.3.2 MFC简介 5

1.4 多任务的实现 6

1.4.1 多任务的概念 6

1.4.2 多任务的实现 6

1.5 虚拟内存及其管理 7

1.5.1 虚拟内存 7

1.5.2 虚拟内存管理 8

小结 8

习题 8

第2章 Windows编程概述 9

2.1 Windows的界面组成 9

2.2 Windows应用程序的数据类型 11

2.2.1 基本数据类型 11

2.2.2 特殊数据类型 11

2.3 Windows应用程序结构 12

2.3.1 WinMain函数 12

2.3.2 WndProc窗口函数 15

2.4 Windows编程实例 16

小结 21

习题 21

上机指导 21

实验一:熟悉Visual C++集成开发环境 21

实验二:创建一个Win32应用程序(1) 22

实验三:创建一个Win32应用程序(2) 22

第3章 Windows应用程序的面向对象 24

3.1 应用程序主函数中类的封装 24

3.1.1 窗口类的声明 24

3.1.2 应用程序类的声明 26

3.1.3 主函数封装后的程序 27

3.2 派生类 31

3.2.1 应用程序类的派生类 31

3.2.2 窗口类的派生类 33

小结 37

习题 37

上机指导 37

实验一:声明窗口类实例 37

实验二:声明应用程序类的派生类 38

实验三:创建一个完整程序 38

第4章 MFC应用程序框架 39

4.1 应用程序向导AppWizard 39

4.1.1 创建应用程序框架 39

4.1.2 编译运行应用程序 43

4.1.3 查看生成文件信息 43

4.2 使用项目工作区 45

4.3 MFC应用程序的基本类 46

4.3.1 CObject类 46

4.3.2 窗口、对话框、控件类 46

小结 49

习题 49

上机指导 49

实验一:创建基于单文档的应用程序TestOne 49

实验二:创建基于对话框的应用程序TestTwo 50

实验三:设计对话框资源TestThree 50

第5章 Windows绘图程序设计 51

5.1 图形设备接口 51

5.2 设备上下文 51

5.2.1 设备上下文介绍 51

5.2.2 设备上下文类型 53

5.2.3 设备上下文MFC类 53

5.2.4 设备上下文操作 59

5.3 GDI对象 60

5.4 绘图函数 60

5.4.1 点线函数 60

5.4.2 形状函数 63

5.4.3 填充函数 66

5.4.4 位图函数 68

5.5 画笔与画刷 71

5.5.1 使用库存画笔与画刷 71

5.5.2 自定义画笔 73

5.5.3 自定义画刷 75

小结 78

习题 78

上机指导 79

实验一:绘制一个矩形 79

实验二:填充矩形 79

实验三:与鼠标相关的图形 80

第6章 文本和字体 81

6.1 文本函数 81

6.1.1 使用TextOut显示文本 81

6.1.2 使用DrawText显示指定格式文本 82

6.1.3 使用ExtTextOut显示字符串 84

6.1.4 使用TabbedTextOut显示字符串 85

6.2 文本属性 86

6.2.1 对齐方式 86

6.2.2 字符间距 88

6.2.3 背景模式 89

6.2.4 文本颜色 90

6.2.5 背景颜色 91

6.2.6 字符属性 92

6.3 字体 94

6.3.1 使用库存字体 94

6.3.2 使用CreateFont创建字体 95

6.3.3 使用CreateFontIndirect创建字体 97

小结 99

习题 99

上机指导 99

实验一:输出颜色为红色的字体 99

实验二:使用库存字体输出文本,并测试字体的宽度和高度 100

实验三:使用自定义字体 101

第7章 消息 102

7.1 Windows消息 102

7.1.1 消息结构 102

7.1.2 消息分类 103

7.2 消息的传输 104

7.2.1 消息的寄送 104

7.2.2 消息的发送 105

7.3 消息处理 105

7.3.1 消息响应 105

7.3.2 消息映射 106

7.3.3 消息响应函数 106

7.3.4 添加消息响应函数 107

7.4 自定义消息 111

7.4.1 自定义消息的基本步骤 111

7.4.2 自定义消息应用 112

小结 115

习题 115

上机指导 116

实验一:查看消息映射 116

实验二:添加消息响应函数 116

实验三:添加自定义消息 116

第8章 菜单、键盘和鼠标 118

8.1 菜单 118

8.1.1 菜单基本知识 118

8.1.2 创建下拉式菜单 119

8.1.3 添加消息响应函数 122

8.1.4 弹出式菜单 124

8.2 键盘 126

8.2.1 键盘的虚拟码 126

8.2.2 键盘响应 126

8.3 鼠标 129

8.3.1 鼠标消息 129

8.3.2 鼠标响应 130

8.3.3 鼠标光标 133

8.3.4 鼠标键盘 134

小结 138

习题 138

上机指导 138

实验一:创建下拉式菜单 138

实验二:识别键盘按键 139

实验三:键盘与鼠标的结合 139

第9章 子窗体控件 140

9.1 Windows标准控件 140

9.1.1 控件概述 140

9.1.2 窗口类CWnd 141

9.2 创建控件 143

9.2.1 静态创建控件 144

9.2.2 动态创建控件 146

9.3 按钮控件 149

9.3.1 单选按钮 149

9.3.2 复选框 151

9.4 编辑控件 153

9.5 树形控件 153

9.5.1 树形控件概述 153

9.5.2 树形控件的使用 155

小结 156

习题 157

上机指导 157

实验一:熟悉标准控件 157

实验二:使用树形控件 157

实验三:列表控件 157

第10章 对话框 158

10.1 对话框的基础知识 158

10.1.1 对话框概述 158

10.1.2 对话框分类 159

10.2 消息对话框 160

10.2.1 消息对话框概述 160

10.2.2 消息对话框样式 160

10.2.3 消息对话框的返回值 161

10.3 模态对话框 162

10.3.1 创建模态对话框 162

10.3.2 创建对话框类 163

10.3.3 添加程序代码 166

10.3.4 模态对话框消息循环 170

10.3.5 模态的终结 172

10.4 非模态对话框 174

10.4.1 创建非模态对话框 174

10.4.2 创建过程分析 175

10.5 通用对话框 176

10.5.1 颜色通用对话框 176

10.5.2 字体通用对话框 177

10.5.3 定制打开文件通用对话框 178

10.5.4 查找和替换通用对话框 179

10.5.5 打印通用对话框 180

小结 181

习题 181

上机指导 181

实验一:熟悉消息对话框 181

实验二:加法运算 182

实验三:创建非模态对话框 182

第11章 文档/视图界面 183

11.1 基本概念 183

11.1.1 概述 183

11.1.2 单文档界面(SDI)应用程序 184

11.1.3 多文档界面(MDI)应用程序 184

11.2 单文档和多文档界面应用程序的实现 185

11.2.1 利用AppWizard创建单文档界面应用程序框架 185

11.2.2 程序框架中的主要类及相互关系 188

11.2.3 文档类、视图类核心函数及作用 190

11.2.4 新建、保存和打开的实现 191

11.2.5 多文档界面应用程序框架 192

11.3 窗口分割与多视 194

11.3.1 窗口分割基础知识 194

11.3.2 Create——创建分割窗口 195

11.3.3 CreateStatic——创建静态分割窗口 196

11.3.4 CreateView——创建窗格 197

11.3.5 SetRowInfo和SetColumnInfo——设置窗格信息 197

11.3.6 OnDrawSplitter——绘制分割窗口特征 198

11.3.7 OnInvertTracker——绘制分割条 199

小结 200

习题 200

上机指导 201

实验一:熟悉单文档界面应用程序 201

实验二:动态分割窗口 201

实验三:静态分割窗口 201

第12章 MFC动态链接库 202

12.1 DLL基本理论 202

12.1.1 DLL基本概念 202

12.1.2 DLL的分类 203

12.1.3 DLL的工作原理 203

12.2 简单DLL示例 204

12.2.1 一个简单的DLL 204

12.2.2 导出函数 206

12.2.3 导入函数 207

12.3 访问动态链接库 208

12.3.1 隐式链接 208

12.3.2 显式链接 208

12.4 常规DLL 210

12.4.1 静态链接到MFC的常规DLL 210

12.4.2 动态链接到MFC的常规DLL 213

12.4.3 DLL的链接使用 215

12.5 扩展DLL 217

12.5.1 生成DLL 217

12.5.2 链接DLL 219

小结 220

习题 220

上机指导 220

实验一:创建一个简单的DLL 220

实验二:显式链接 220

第13章 VC数据库编程 221

13.1 数据库基础 221

13.1.1 数据库的基本概念 221

13.1.2 数据库管理系统(DBMS) 222

13.1.3 结构化查询语言(SQL) 222

13.2 数据库开发技术简介 225

13.2.1 ODBC API/MFC ODBC技术 225

13.2.2 DAO技术 226

13.2.3 ADO技术 226

13.3 在Visual C++中使用ADO 开发数据库应用程序 228

13.3.1 Viusal C++对ADO的支持 228

13.3.2 创建数据库与实例工程 229

13.3.3 引入ADO对象 232

13.3.4 连接数据源 232

13.3.5 开发技术——连接对象(Connection) 233

13.3.6 创建表并添加数据 235

13.3.7 开发技术——ADO对象命令的执行 236

13.3.8 开发技术——Recordset对象 237

13.3.9 遍历、删除、编辑记录的实现 243

13.4 使用ODBC数据源连接数据库 247

13.4.1 手动实现设置ODBC数据源 247

13.4.2 ADO连接ODBC数据源 249

13.4.3 Visual C++程序实现设置ODBC数据源 249

13.4.4 使用Visual C++程序设置ODBC数据源实例 250

小结 251

习题 251

上机指导 251

实验一:登录对话框 251

实验二:手动设置ODBC数据源 252

实验三:修改记录 252

第14章 多线程 253

14.1 多线程基础 253

14.1.1 进程与线程 253

14.1.2 线程分类 254

14.2 多线程编程 254

14.2.1 Win32 API线程处理 254

14.2.2 工作者线程 255

14.2.3 用户界面线程 257

14.3 线程的终止 259

14.3.1 线程的正常终止 259

14.3.2 线程的异常终止 260

14.4 线程的优先级与管理 260

14.4.1 线程的优先级 260

14.4.2 线程的优先级管理 262

14.4.3 线程的调度 263

14.5 线程之间的通信 264

14.5.1 通信机制 264

14.5.2 工作者线程通信 264

14.5.3 用户界面线程通信 266

14.6 线程的同步 269

14.6.1 同步对象 269

14.6.2 使用事件对象 271

14.6.3 使用互斥对象 273

14.6.4 使用临界区对象 274

14.6.5 使用信号量对象 275

小结 277

习题 278

上机指导 278

实验一:工作者线程的设计和实现 278

实验二:线程同步对象使用 279

实验三:线程间自定义消息方式通信的设计与实现 279

第15章 串行通信原理与设计 281

15.1 串行通信的基本概念 281

15.1.1 串行通信的特点 281

15.1.2 串行通信的传输方式 282

15.1.3 数据纠错与检错 282

15.1.4 传输速率与距离 283

15.2 串行传输协议 283

15.2.1 异步传输协议 284

15.2.2 面向字符的同步传输协议 285

15.2.3 面向比特的同步传输协议 286

15.3 使用Windows API进行同步串口编程 288

15.3.1 概述 288

15.3.2 创建串口 288

15.3.3 关闭串口 293

15.3.4 发送数据 293

15.3.5 接收数据 294

15.3.6 定时接收数据的方法 294

15.4 采用重叠I/O方式的编程方法 295

15.4.1 定义全局变量 295

15.4.2 创建串口 296

15.4.3 发出读写操作 296

15.4.4 读写线程函数的建立 297

15.4.5 关闭串口 301

15.5 采用事件驱动方式的编程方法 301

15.5.1 定义全局变量 301

15.5.2 打开串口及开启事件线程 302

15.5.3 发送数据 304

15.5.4 自定义消息函数读取数据 305

15.5.5 关闭串口及关闭事件线程 307

小结 307

习题 308

上机实验 308

实验一:同步串口编程 308

实验二:重叠方式的串口编程 309

实验三:事件驱动方式的串口编程 309

第16章 Windows网络编程基础 311

16.1 网络基础知识 311

16.1.1 OSI七层网络模型 311

16.1.2 TCP/IP协议 312

16.1.3 C/S编程模型 313

16.2 网络编程基础 313

16.2.1 Sockets套接字 314

16.2.2 网络字节顺序 314

16.3 Windows Sockets介绍 314

16.3.1 CAsyncSocket类 314

16.3.2 CSocket类 314

16.4 网络程序实例应用 315

16.4.1 Winsock编程流程 315

16.4.2 TCP客户端程序 318

16.4.3 TCP服务器程序 326

小结 331

习题 331

上机指导 332

实验一:设计客户端和服务器端的界面 332

实验二:初始化客户端和服务器端 332

实验三:信息的发送和接收 333