《MFC Windows应用程序设计 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:任哲等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:7302155496
  • 页数:381 页
图书介绍:本书针对学习过C/C++语言的读者,从Windows SDK程序设计出发,用C++类对Windows应用程序进行了模拟封装,重点介绍了MFC的应用程序框架,并以精练的语言介绍了Windows的图形图像处理、应用程序界面、资源、文件、动态链接库、进程与线程管理等知识。

第1章 Windows应用程序基础知识 1

1.1 Windows应用程序的基本概念 1

1.1.1 Windows应用程序的界面 1

1.1.2 Windows应用程序与API函数 1

1.1.3 Windows的一个特殊数据类型——句柄 2

1.1.4 Windows应用程序的数据类型 3

1.1.5 消息与消息循环 4

1.2 Windows应用程序的结构 6

1.2.1 主函数 6

1.2.2 消息的处理部分——窗口函数 8

1.2.3 Windows系统、主函数、窗口函数之间的关系 9

1.3 用函数封装Windows程序 15

1.4 窗口函数的另一种结构 19

小结 22

练习题 22

思考题 23

第2章 Windows应用程序的类封装 25

2.1 应用程序主函数的C++类封装 25

2.1.1 窗口类的声明 26

2.1.2 应用程序类的声明 27

2.1.3 主函数封装后的程序 28

2.2 派生类的应用 32

2.2.1 应用程序类的派生类 33

2.2.2 窗口类的派生类 35

2.3 窗口函数的封装——消息映射 39

2.3.1 消息处理函数的简单封装 40

2.3.2 消息映射 42

2.3.3 消息映射表的声明和实现 45

小结 48

练习题 48

思考题 49

第3章 MFC应用程序框架 51

3.1 早期的应用程序框架及其MFC类 51

3.1.1 早期的应用程序框架 51

3.1.2 MFC的窗口类 52

3.1.3 CWinApp类 53

3.2 最简单的MFC程序实例 54

3.2.1 程序的编写 54

3.2.2 程序主函数的代码 56

3.3 应用程序的文档/视图结构 57

3.3.1 文档/视图结构的基本概念 57

3.3.2 单文档界面和多文档界面结构 59

3.4 文档类CDocument的派生类 60

3.5 视图类CView的派生类 61

3.6 窗口框架类CFrameWnd的派生类 62

3.7 文档模板类CDocTemplate 64

3.8 应用程序类的派生类 65

3.8.1 应用程序类派生类的代码 65

3.8.2 程序员的主要工作 66

3.9 MFC文档/视图应用程序框架中各个对象的关系 67

3.9.1 应用程序各对象创建的顺序 67

3.9.2 应用程序各对象之间的联系 68

3.9.3 文档/视图应用程序消息的传递 71

3.10 对象的动态创建 71

3.10.1 问题的提出与解决 71

3.10.2 类信息表及其声明和实现 76

3.10.3 对象类信息表的提取 77

小结 78

练习题 78

思考题 78

第4章 图形 79

4.1 DC和GDI 79

4.1.1 设备描述环境 79

4.1.2 Windows的GDI 80

4.2 CDC类 80

4.3 CPen类 82

4.4 CBrush类 85

4.5 绘图模式 87

4.6 文本和CFont类 88

4.6.1 显示文本 88

4.6.2 字体和CFont类 91

4.7 CDC的其他派生类 93

4.7.1 窗口用户区设备描述环境CClientDC类 93

4.7.2 图元文件设备描述环境CMetaFileDC类 94

小结 96

练习题 96

思考题 96

第5章 MFC的通用类 97

5.1 简单数据类 97

5.1.1 点类CPoint 97

5.1.2 矩形类CRect 98

5.1.3 尺寸类CSize 98

5.1.4 字符串类CString 99

5.2 群体数据类 100

5.3 数据在文档/视图结构程序中的位置 102

小结 104

练习题 104

思考题 104

第6章 Windows应用程序界面的设计 105

6.1 SDI和MDI界面 105

6.2 SDI界面窗口的样式 106

6.2.1 在MFC AppWizard中确定窗口样式 106

6.2.2 在函数PreCreateWindow中修改窗口的样式 107

6.2.3 可拆分为小窗口的SDI界面 111

6.3 拆分窗口的同步更新及更新效率 112

6.3.1 拆分窗口的同步更新 112

6.3.2 提高拆分窗口更新效率的方法 112

6.4 创建带有滚动条的窗口 117

小结 121

练习题 121

思考题 122

第7章 鼠标和键盘 123

7.1 处理鼠标消息 123

7.1.1 用户区鼠标消息 124

7.1.2 非用户区鼠标消息 128

7.1.3 鼠标消息的捕获 129

7.2 处理键盘消息 130

7.2.1 按键的虚拟码 130

7.2.2 一般按键消息 133

7.2.3 系统按键消息 134

7.3 应用程序窗口的焦点 135

小结 136

练习题 137

思考题 138

第8章 资源 139

8.1 资源和资源文件 139

8.1.1 什么是资源 139

8.1.2 资源头文件 140

8.1.3 资源描述文件 141

8.2 菜单 141

8.2.1 资源描述文件的菜单部分 141

8.2.2 编辑现有的菜单 143

8.2.3 自定义菜单 146

8.2.4 用菜单编辑器编辑菜单 148

8.2.5 菜单命令选项的动态修改 148

8.3 快捷键表 151

8.3.1 资源描述文件的快捷键表部分 151

8.3.2 使用快捷键编辑器编辑快捷键表 152

8.4 图标 152

8.4.1 制作图标 152

8.4.2 资源描述文件的图标部分 153

8.5 位图 154

8.5.1 资源描述文件的位图部分 154

8.5.2 位图资源的使用 154

小结 157

练习题 158

思考题 158

第9章 MFC的文件处理机制 159

9.1 CFile类 159

9.1.1 CFile类常用成员函数 159

9.1.2 文件的创建与打开 159

9.1.3 文件的读写 161

9.1.4 CFile的派生类CMemFile 165

9.1.5 CFileFind类 166

9.2 CArchive类 167

9.2.1 插入符和提取符的重载 167

9.2.2 CArchive类对象与CFile类对象的关联 168

9.3 对象的序列化 170

9.3.1 序列化的基本概念 170

9.3.2 MFC的Serialize函数 171

9.3.3 MFC应用程序的序列化过程 173

9.3.4 序列化的顺序 174

9.4 宏DECLARE_SERIAL和IMPLEMENT_SERIAL 177

9.5 MFC文件命令的默认处理流程 182

9.5.1 应用程序启动后文档的初始化流程 182

9.5.2 应用程序菜单命令的默认处理 182

小结 183

练习题 183

思考题 183

第10章 控件 185

10.1 标准控件及其使用 185

10.1.1 标准控件 186

10.1.2 静态文本控件 186

10.1.3 按钮控件 188

10.1.4 编辑控件 192

10.2 通用控件 194

10.2.1 进度条控件 194

10.2.2 微调器控件 195

10.2.3 图像列表控件 199

10.2.4 列表视图控件 200

10.3 控件的背景颜色 208

小结 210

练习题 211

第11章 对话框 213

11.1 对话框模板资源描述文件 213

11.2 自定义对话框类 215

11.2.1 MFC的对话框类及用户自定义对话框类 216

11.2.2 模态对话框 217

11.3 对话框的数据交换和数据检验 221

11.3.1 数据交换 221

11.3.2 使用Class Wizard为对话框添加成员变量 223

11.3.3 数据检验 225

11.4 以对话框为主界面的应用程序 225

11.4.1 应用程序框架的设计 226

11.4.2 应用程序代码的设计 226

11.5 MFC预置的通用对话框 228

11.5.1 文件对话框 228

11.5.2 字体选择对话框 230

11.6 非模态对话框 233

11.7 属性页 235

小结 238

练习题 239

思考题 239

第12章 进程与线程的管理 241

12.1 进程、线程及其优先权 241

12.1.1 进程、线程的基本概念 241

12.1.2 进程和线程的优先级 241

12.2 工作线程和用户界面线程 243

12.2.1 工作线程的创建 243

12.2.2 用户界面线程的创建 244

12.3 线程同步 246

12.3.1 线程同步的基本概念 246

12.3.2 事件 247

12.3.3 临界段 251

12.3.4 互斥体 253

12.3.5 信号量 254

12.4 线程通信 256

12.4.1 利用全局变量进行通信 257

12.4.2 利用自定义的消息进行通信 258

小结 259

练习题 260

第13章 动态链接库及其使用 261

13.1 链接库 261

13.1.1 静态链接库 261

13.1.2 动态链接库 263

13.2 动态链接库的创建 265

13.2.1 导出函数的声明 265

13.2.2 用MFC编写DLL 268

13.3 动态链接库的使用 271

13.3.1 隐式链接方式 271

13.3.2 显式链接方式 272

小结 273

练习题 274

思考题 274

第14章 组件对象模型基础 275

14.1 组件对象模型概述 275

14.1.1 软件模块化的发展历程 275

14.1.2 组件对象模型 283

14.1.3 COM术语 283

14.2 组件类、接口的标识及注册 284

14.3 COM规定的标准服务 285

14.3.1 接口IUnknown 285

14.3.2 接口IClassFactory和IDispatch 289

14.4 COM接口的二进制标准及IDL语言 291

14.5 使用ATL设计组件 291

14.5.1 ATL对COM的支持 291

14.5.2 使用ATL设计组件的步骤和方法 292

14.5.3 浏览ATL生成的代码 295

14.6 组件的包含与聚合 298

14.6.1 包含 298

14.6.2 聚合 299

小结 299

练习题 300

思考题 300

第15章ActiveX应用基础 301

15.1ActiveX技术概述 301

15.1.1 ActiveX的前身——OLE 301

15.1.2 ActiveX技术的缘起 303

15.1.3 ActiveX自动化 303

15.1.4 ActiveX控件 304

15.1.5 ActiveX文档 305

15.1.6 ActiveX文档与ActiveX控件的区别 305

15.2 用MFC设计ActiveX容器 306

15.2.1 ActiveX容器的结构 306

15.2.2 用MFC设计ActiveX容器 306

15.3 用MFC设计ActiveX服务器 309

15.4用MFC设计ActiveX自动化应用程序 310

15.4.1 用MFC设计ActiveX自动化服务器 310

15.4.2 用MFC设计ActiveX自动化客户 313

15.5 用MFC设计ActiveX控件 315

小结 318

练习题 319

第16章 用MFC设计数据库应用程序 321

16.1 数据库系统及数据库应用程序 321

16.1.1 数据库系统 321

16.1.2 数据库应用系统的设计 322

16.2 ODBC的基本构成 322

16.3 配置ODBC数据源 323

16.3.1 ODBC管理器 324

16.3.2 配置ODBC数据源的方法和步骤 324

16.4 MFC的ODBC类 326

16.4.1 CDatabase类 327

16.4.2 CRecordset类 328

16.4.3 CDBException类 332

16.5 ODBC应用程序实例 333

16.5.1显示和处理表中的数据 333

16.5.2 连接两个表 338

16.6 使用DAO设计数据库应用程序简介 339

16.6.1 DAO简介 339

16.6.2 DAO和MFC 339

16.6.3 使用MFC DAO类编程 340

小结 341

练习题 341

第17章 异常和异常处理 343

17.1 异常处理的基本思想 343

17.2 异常对象 346

17.3 MFC的异常类 348

17.3.1 CException类 348

17.3.2 CException类的子类 348

小结 349

练习题 350

附录A 数据类型与Windows句柄 351

附录B 标识符的匈牙利记法 355

附录C MFC的消息映射 357

附录D 文档/视图框架的补充内容 363

附录E 多文档/视图框架的一个实例 369

附录F 类信息表与CObject类 375

附录G Visual C++中文件类型小结 379

参考文献 381