《新一代Visual C++2005程序设计 珍藏版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:林俊杰编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302139504
  • 页数:479 页
图书介绍:本书详细描述Visual C++与MFC开发Windows窗体应用程序的方法与过程。

1.1 本书结构 1

第1章 综述 1

1.2 本书约定 2

第2章 C++重点回顾 3

2.1 类、对象与实例 3

2.2 构造函数(Constructor) 3

2.3 匿名实例(Nameless Instance) 4

2.4 虚函数 5

2.5 异常处理 7

3.1 什么是Win32 API 10

3.2 控制台模式的应用程序——Win32 Console Mode 10

第3章 基本概念与基础MFC类 10

3.3 基本数据类型 11

3.4 什么是Unicode 14

3.5 使用MFC类库 15

3.5.1 MFC的根CObject 15

3.5.2 功能强大的字符串类CString 15

3.5.3 CFile家族 17

3.5.4 CException异常类家族 19

3.5.5 通用的列表类CList 23

第4章 窗口程序的基本概念 25

4.1 文字终端与GUI界面 25

4.2 组成要素 26

4.2.1 应用程序 26

4.2.2 窗口 27

4.2.3 消息传递机制 30

第5章 创建第一个窗口程序 32

5.1 使用Visual C++ 32

5.1.1 创建新项目 32

5.1.2 设置项目选项 34

5.1.3 创建新CPP文件 35

5.1.4 编译与执行示例程序 36

5.1.5 调试 36

5.2 示例程序 37

5.2.1 HelloApp 38

5.2.2 MyFrameWindow 39

5.3.2 符号与资源的包含文件(Include Files) 41

5.3 增加资源文件 41

5.3.1 创建新的资源文件 41

5.3.3 插入资源 42

5.3.4 编辑位图资源 43

5.3.5 编辑图标资源 44

5.3.6 编辑菜单资源 44

5.3.7 引用资源 46

5.4 用MFC Application Wizard产生程序 50

5.4.1 用MFC Application Wizard产生项目 51

5.4.2 产生了什么程序代码 54

5.4.3 在CChildView内显示文字 56

6.1 窗口类 58

第6章 窗口的产生与处理 58

6.2 产生CWnd对象 59

6.2.1 CWnd∷Create() 60

6.2.2 CWnd∷CreateEx() 62

6.2.3 WM_CREATE消息 63

6.2.4 CREATESTRUCT 63

6.3 处理消息 64

6.3.1 映射表 64

6.3.2 给窗口发送消息 65

6.4 关闭窗口 67

6.5.2 移动窗口与改变大小 69

6.5.3 移动窗口、改变大小及垂直相对位置 69

6.5.1 获取窗口的位置及大小 69

6.5 窗口位置与尺寸 69

6.5.4 移动与改变大小的消息 71

6.5.5 改变窗口显示的状态 72

6.5.6 工作区的相关消息 72

6.5.7 坐标系统的转换 73

6.6 窗口的状态与样式 74

6.6.1 图标化 74

6.6.2 可见性 74

6.6.3 放大 74

6.6.4 使能 74

6.6.6 子窗口 75

6.6.5 活动与非活动 75

6.6.7 窗口的样式 76

6.7 工作区显示 76

6.8 有滚动条的窗口 78

6.8.1 滚动条 78

6.8.2 滚动条的范围 79

6.8.3 滚动块的位置 80

6.8.4 滚动条的消息 80

6.8.5 滚动工作区 81

6.9 CWnd与句柄 81

6.10 窗口文本 82

7.1.1 对话框与一般窗口的区别 83

7.1 基础知识 83

第7章 对话框 83

7.1.2 必备的OK、Cancel键 85

7.1.3 控件 86

7.1.4 控件的通知消息 86

7.2 编辑器与列表框的字符串交换 87

7.2.1 创建项目 87

7.2.2 对话框资源编辑器 88

7.2.3 设计对话框的外观 90

7.2.4 响应各种事件 92

7.2.5 运行的细节 97

7.3 消息框 100

7.4.1 多页对话框的原理 103

7.4.2 创建多页对话框的程序 103

7.4 多页对话框 103

7.4.3 CPropertySheet的构造函数 104

7.4.4 CPropertySheet的成员函数 104

7.4.5 CPropertyPage的构造函数 105

7.4.6 CPropertyPage的成员函数 105

7.4.7 CPropertyPage可以覆盖的成员函数 105

7.4.8 示例程序 106

7.5 通用对话框 108

7.5.1 文件对话框 109

7.5.2 颜色对话框 113

7.5.3 其他的通用对话框 114

8.1.1 改变输入焦点 115

第8章 键盘、鼠标与时间 115

8.1 消息与输入焦点 115

8.1.2 与输入焦点有关的消息 116

8.2 键盘的消息 116

8.2.1 ASCII码、虚拟键码与扫描码 117

8.2.2 消息 117

8.3 鼠标 119

8.3.1 鼠标消息 119

8.3.2 更换鼠标的光标 121

8.3.3 显示等待光标 122

8.3.4 获取鼠标的控制权 123

8.4.1 在中文窗口下的文本输入 124

8.4 特殊的状况 124

8.4.2 Windows的功能键 125

8.5 示例:模拟打字程序 126

8.5.1 获取消息 126

8.5.2 文本光标 127

8.5.3 鼠标光标 128

8.5.4 显示输入的字符 129

8.6 计时器消息与时间 133

8.7 设计鼠标光标 134

8.7.1 绘制手掌型光标 134

8.7.2 光标的热点 135

8.7.3 更换鼠标光标 135

9.1 菜单 136

第9章 菜单、工具栏与快捷键 136

9.1.1 命令消息 137

9.1.2 使用菜单 140

9.1.3 系统菜单 140

9.1.4 弹出式菜单 141

9.1.5 CMenu的成员函数 142

9.1.6 示例 147

9.2 快捷键 151

9.2.1 快捷键的工作方式 151

9.2.2 编辑快捷键表资源 152

9.2.3 示例 153

9.3 工具栏与状态栏 154

9.3.1 创建工具栏 155

9.3.2 编辑工具栏资源 157

9.3.3 创建状态栏 158

9.3.4 在状态栏显示时间 159

9.3.5 工具栏与状态栏的开关 159

9.3.6 状态栏与Tooltip中的帮助说明文字 160

第10章 文档、视图与框架窗口 163

10.1 “文档/视图”模型 163

10.1.1 文档与视图(Document/View) 163

10.1.2 单文档界面与多文档界面 164

10.2 文档、视图与框架窗口间的关系 166

10.2.1 一个标准的SDI示例 166

10.2.2 编辑字符串表(String Table) 170

10.3.1 View的管理 175

10.3 CDocument类 175

10.3.2 创建或打开文档 176

10.3.3 保存文件 177

10.3.4 关闭文件 178

10.3.5 Serialize 178

10.3.6 应该被重载的函数 182

10.3.7 其他成员 183

10.4 CView类 183

10.5 CScrollView类 184

10.5.1 CScrollView的工作原理 184

10.5.2 CScrollView的成员函数 184

10.6.1 重要的成员函数 186

10.6 SDI框架窗口CFrameWnd 186

10.6.2 菜单的自动enable/disable 187

10.7 示例:拉线绘图 187

10.7.1 CList 187

10.7.2 鼠标的操作 188

10.7.3 Serialize 188

10.7.4 更换鼠标光标 189

10.7.5 其他细节 189

10.7.6 改用CScrollView 197

10.8 MDI 198

10.8.1 一个标准的MDI示例 198

10.8.3 管理MDI子窗口 203

10.8.2 排列MDI子窗口 203

10.8.4 CMDIFrameWnd的自动功能 204

10.8.5 Window选项 204

10.8.6 最近使用的文档MRU 204

10.8.7 与MDI有关的消息 205

10.9 MDI化的LineArt 206

10.10 多视图类的MDI 213

10.11 拆分式窗口(Splitter Window) 221

10.11.1 包含“动态拆分窗口”的SDI标准示例 222

10.11.2 包含“静态拆分窗口”的SDI示例 222

10.12 更多不同的View类 232

10.12.1 另一类对话框CFormView 232

10.12.2 可以直接编辑文字的CEditView 233

11.1.1 使用MFC Application Wizard创建项目 239

11.1 SDI项目 239

第11章 文档视图模式与MFC Application Wizard 239

11.1.2 新项目中有哪些类 241

11.1.3 用Class Wizard重做SDI版的LineArt 241

11.2  MDI项目 247

11.2.1 使用MFC Application Wizard创建MDI项目 247

11.2.2 新项目中有哪些类 248

第12章 控件 249

12.1 静态类 249

12.1.1 CStatic∷Create() 250

12.1.2 样式 250

12.1.3 成员函数 251

12.2.1 CButton∷Create() 252

12.2.2 样式 252

12.1.4 CStatic的通知消息 252

12.2 按钮 252

12.2.3 成员函数 255

12.2.4 通知消息 256

12.2.5 示例:计算器 257

12.3 滚动条CScrollBar 268

12.3.1 CScrollBar∷Create() 268

12.3.2 样式 269

12.3.3 成员函数 269

12.3.4 通知消息 270

12.3.5 示例:多线程动画 272

12.4.1 样式 279

12.4 列表框 279

12.4.2 成员函数 281

12.4.3 通知消息 284

12.5 编辑控件 284

12.5.1 样式 284

12.5.2 成员函数 285

12.5.3 通知消息 287

12.6 组合框 287

12.6.1 样式 288

12.6.2 成员函数 289

12.7 数据交换与校验 292

12.6.3 通知消息 292

12.7.1 简单的示例 293

12.7.2 常见的DDX函数 296

12.7.3 常见的DDV校验函数 298

12.7.4 在资源编辑器中添加DDX/DDV选项 298

第13章 设备上下文与基本绘图工具 300

13.1 概述 300

13.2 设备上下文类CDC 300

13.2.1 创建与删除CDC对象 300

13.2.2 CDC的内置资源对象 302

13.2.3 查询DC的相关信息 303

13.3 CWindowDC与CClientDC 305

13.2.4 CDC的其他成员函数 305

13.3.1 CWindowDC的构造函数 306

13.3.2 CClientDC的构造函数 306

13.4 画笔与画刷 306

13.4.1 画笔 306

13.5 基本绘图函数 309

13.5.1 点 309

13.5.2 线 309

13.5.3 弧线 310

13.5.4 椭圆 311

13.5.5 矩形 311

13.5.6 饼图 311

13.5.8 其他 312

13.5.7 多边形 312

13.6 色彩与调色板 313

13.6.1 显卡的概念 313

13.6.2 256色模式 313

13.6.3 32K,64K及16M色模式 314

13.6.4 逻辑调色板和硬件调色板 314

13.6.5 常用来表示“颜色”的结构与宏 315

13.7 使用调色板 317

13.7.1 创建调色板对象 317

13.7.2 将调色板对象指派给DC 317

13.7.3 “实现”(Realize)调色板 317

13.7.5 响应系统消息 318

13.7.4 画图 318

13.7.6 调色板的其他成员函数 319

13.8 字体与文本输出 319

13.8.1 基本知识 319

13.8.2 如何描述“字体” 320

13.8.3 CFont类 323

13.8.4 多样的文本输出方式 324

13.8.5 文本输出的格式与属性 328

13.9 示例:时钟 331

第14章 位图 337

14.1 简介 337

14.1.1 设备独立位图(DIB) 337

14.1.2 设备相关位图(DDB) 338

14.2 CBitmap类 339

14.2.1 创建DDB 339

14.2.2 CBitnap成员函数 339

14.2.3 与DDB有关的函数 340

14.3 设备无关位图类(DIB) 341

14.3.1 DIB的结构 341

14.3.2 BITMAPFILEHEADER 342

14.3.3 BITMAPINFO 342

14.3.4 BITMAPINFOHEADER 342

14.3.5 RGBQUAD 343

14.3.6 BMP文件的格式 344

14.3.7 Win32 API与DIB有关的函数 344

14.4 处理DIB的示例 345

14.3.8 DIB与DDB的转换 345

14.4.1 自己设计CDib类 346

14.4.2 主程序 357

第15章 打印与坐标系 369

15.1 打印 369

15.1.1 设置打印机的状态 369

15.1.2 通过CView打印 370

15.1.3 示例 374

15.2 比例、原点与方向 376

15.2.1 改变映射模式 377

15.2.2 理想与现实 377

15.2.3 示例 378

15.3 更大的灵活性 381

15.4 打印预览 383

第16章 通用控件 384

16.1 概述 384

16.1.1 通用控件的种类 384

16.1.2 使用通用控件前的初始化 386

16.1.3 通用控件的共性 386

16.1.4 通用控件的通知消息 387

16.1.5 通用控件都会产生的通知消息 388

16.2 CSliderCtrl 388

16.2.1 CSliderCtrl的样式 388

16.2.2 CSliderCtrl成员函数 389

16.2.3 CSliderCtrl的通知消息 390

16.3 CSpinButtonCtrl 391

16.3.1 CSpinButtonCtrl的样式 391

16.3.2 CSpinButtonCtrl的用法 391

16.3.3 CSpinButtonCtrl的其他成员函数 392

16.3.4 CSpinButtonCtrl的通知消息 392

16.4 CHeaderCtrl 392

16.4.1 CHeaderCtrl的样式 392

16.4.2 使用CHeaderCtrl 393

16.4.3 其他的成员函数 394

16.5.2 CAnimateCtrl的成员函数 395

16.5.1 CAnimateCtrl的样式 395

16.5 CAnimateCtrl 395

16.4.4 CHeaderCtrl的通知消息 395

16.5.3 CAnimateCtrl的通知消息 396

16.5.4 示例 396

16.6 CProgressCtrl 398

16.6.1 CProgressCtrl的用法 398

16.6.2 示例 398

16.7 CTreeCtrl、CTreeView与CImageList 398

16.7.1 使用CImageList 399

16.7.2 CTreeCtrl的样式 400

16.7.3 CTreeCtrl的用法 400

16.7.4 其他的成员函数 402

16.7.5 CTreeCtrl的通知消息 405

16.7.7 示例:显示磁盘的树状目录 406

16.7.6 CTreeView 406

16.8 CListCtrl与CListView 416

16.8.1 CListCtrl的样式 417

16.8.2 CListCtrl的用法 418

16.8.3 CListCtrl的成员函数 421

16.8.4 CListCtrl的通知消息 424

16.8.5 CListView 425

16.8.6 示例:显示目录中的文件列表 426

16.9 示例:程序管理器 435

16.10 CIPAddressCtrl 438

16.10.1 成员函数 438

16.10.2 通知消息 439

17.1 ActiveX控件的由来 440

第17章 使用ActiveX控件 440

17.2 使用ActiveX控件 441

17.2.1 安装ActiveX控件 442

17.2.2 MCI32.OCX简介 443

17.3 设计ActiveX容器 443

17.3.1 启动ActiveX 443

17.3.2 插入ActiveX控件 444

17.3.3 在对话框中使用MCI控件 445

17.3.4 在程序中控制MCI控件 446

第18章 进程、线程和内存 448

18.1 Win32的内存管理 448

18.2 Process简介 452

18.2.1 产生子进程 453

18.2.2 与process有关的信息 456

18.2.3 结束process 457

18.3 Thread简介 457

18.3.1 产生Child Thread 458

18.3.2 Thread的信息 458

18.3.3 终止Thread 458

18.4 同步(Synchronization) 458

18.4.1 Critical Section 460

18.4.2 等待对象的状态改变 463

18.4.3 Mutex 464

18.4.4 Event 466

18.5 进程间通信(IPC) 469

18.6.2 利用CWinThread产生Thread的流程 472

18.6 CWinThread 472

18.6.1 GUI Thread与非GUI Thread 472

18.6.3 其他的CWinThread成员 473

第19章 Profile与Registry 474

19.1 什么是Profile 474

19.2 什么是Registry 475

19.2.1 创建新的key 476

19.2.2 打开已存在的entry 477

19.2.3 写入数据 477

19.2.4 读取数据 478

19.2.5 删除key或entry 478

19.2.6 关闭Key 479