当前位置:首页 > 工业技术
MFC Windows程序设计  第2版
MFC Windows程序设计  第2版

MFC Windows程序设计 第2版PDF电子书下载

工业技术

  • 电子书积分:29 积分如何计算积分?
  • 作 者:(美)Jeff Prosise著;北京博彦科技发展有限责任公司译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2001
  • ISBN:7900631925
  • 页数:1166 页
图书介绍:
《MFC Windows程序设计 第2版》目录

鸣谢 1

序言 2

第Ⅰ部分 Windows和MFC基础 3

第1章 Hello, MFC 3

1.1 Windows编程模型 3

1.1.1 消息,消息,还是消息 5

1.1.2 Windows程序设计,SDK风格 6

1.1.3 匈牙利标记法和Windows数据类型 9

1.1.4 SDK程序设计展望 9

1.2 MFC简介 10

1.2.1 使用C++和MFC的好处 10

1.2.2 MFC的设计思想 11

1.2.4 MFC类的分层结构 12

1.2.3 文档/视图体系结构 12

1.2.5 AFX函数 13

1.3 您的第一个MFC应用程序 13

1.3.1 应用程序对象 16

1.3.2 MFC如何使用应用程序对象 18

1.3.3 框架窗口对象 18

1.3.4 绘制窗口 21

1.3.5 消息映射 22

1.3.6 消息映射的工作方式 24

1.3.7 Windows、字符集和_T宏 26

1.3.8 建立应用程序 28

1.3.9 小结 29

2.1 Windows GDI 30

第2章 在窗口中绘图 30

2.1.1 MFC设备描述表类 31

2.1.2 设备描述表属性 34

2.1.3 绘图模式 35

2.1.4 映射模式 36

2.1.5 可编程映射模式 39

2.1.6 坐标转换 40

2.1.7 移动原点 41

2.1.8 坐标系小结 42

2.1.9 获取设备信息 42

2.2 用GDI绘图 44

2.2.1 画直线和曲线 44

2.2.2 画椭圆、多边形以及其他形状 47

2.2.3 GDI画笔和CPen类 49

2.2.4 GDI画刷和CBrush类 53

2.2.5 画文本 56

2.2.6 GDI字体和CFont类 57

2.2.7 光栅字体与TrueType字体 60

2.2.8 旋转文本 60

2.2.9 备用对象 62

2.2.10 删除GDI对象 63

2.2.11 取消对GDI对象的选定 64

2.2.12 标尺应用程序 66

2.3 看看画了些什么 69

2.3.1 给窗口添加滚动条 69

2.3.2 设定滚动条的范围、位置和页面大小 70

2.3.4 处理滚动条消息 72

2.3.3 使滚动条滑块大小和窗口尺寸同步变化 72

2.3.5 滚动窗口 74

2.3.6 Accel应用程序 75

2.4 遗留问题 84

第3章 鼠标和键盘 85

3.1 从鼠标获取输入 86

3.1.1 客户区鼠标消息 86

3.1.2 TicTac应用程序 89

3.1.3 非客户区鼠标消息 105

3.1.4 WM_NCHITTEST消息 108

3.1.5 WM_MOUSELEAVE和WM_MOUSEHOVER消息 108

3.1.6 鼠标滚轮 110

3.1.7 捕获鼠标 112

3.1.8 鼠标捕获的应用 113

3.1.9 光标 119

3.1.10 沙漏形光标 121

3.1.11 鼠标杂录 122

3.2 从键盘获取输入 123

3.2.1 输入焦点 124

3.2.2 击键消息 125

3.2.3 虚拟键代码 127

3.2.4 Shift状态及切换 128

3.2.5 字符消息 130

3.2.6 死键消息 132

3.2.7 插入符 133

3.3 VISUALKB应用程序 135

3.3.1 处理插入符 148

3.3.2 输入及编辑文本 150

3.3.3 其他有趣内容 151

第4章 菜单 153

4.1 菜单基础 153

4.1.1 创建菜单 154

4.1.2 加载并显示菜单 157

4.1.3 响应菜单命令 158

4.1.4 命令范围 160

4.1.5 更新菜单中的菜单项 161

4.1.6 更新范围 164

4.1.7 键盘加速键 165

4.2 SHAPES应用程序 167

4.2.1 运行MFC AppWizard 185

4.2.2 分析AppWizard的输出 187

4.2.3 AppWizard之外的工作 191

4.2.4 过程小结 195

4.3 菜单魔术 196

4.3.1 通过手工编程创建菜单 196

4.3.2 通过手工编程修改菜单 197

4.3.3 系统菜单 198

4.3.4 自制菜单 200

4.3.5 层叠菜单 204

4.3.6 上下文菜单 206

4.4 COLORS应用程序 209

4.4.1 上下文菜单 233

4.4.2 试一试 235

5.1 数组 236

第5章 MFC集合类 236

5.1.1 MFC数组类 237

5.1.2 动态调整数组大小 240

5.1.3 用CArray创建类型安全数组类 242

5.2 列表 244

5.2.1 MFC列表类 245

5.2.2 用CList创建类型安全列表类 247

5.3 映射表 249

5.3.1 MFC映射表类 249

5.3.2 映射表工作方式 251

5.3.3 提高查找效率 252

5.3.4 用CMap创建类型安全映射表类 254

5.4 类型指针类 255

第6章 文件I/O和串行化 257

6.1 CFile类 257

6.1.1 打开、关闭和创建文件 258

6.1.2 读和写 260

6.1.3 CFile派生类 262

6.1.4 枚举文件和文件夹 263

6.2 串行化和CArchive类 265

6.2.1 串行化基础 266

6.2.2 编写可串行化类 267

6.2.3 给可串行化类分配版本号:可配置版本模式 269

6.2.4 串行化工作过程 272

6.2.5 串行化CObject 276

7.1 传统控件 278

第7章 控件 278

7.1.1 CButton类 281

7.1.2 CListBox类 285

7.1.3 CStatic类 291

7.1.4 FontView应用程序 294

7.1.5 CEdit类 302

7.1.6 赶快!即时记事本 307

7.1.7 CComboBox类 316

7.1.8 CScrollBar类 319

7.2 高级控件程序设计 320

7.2.1 数字编辑控件 320

7.2.2 自制列表框 321

7.2.3 图形按钮 330

7.2.4 自定义控件的颜色 331

7.2.5 消息反射 338

第8章 对话框和属性表 341

8.1 模式对话框和CDialog类 341

8.1.1 对话框模板 342

8.1.2 CDialog类 347

8.1.3 创建模式对话框 349

8.1.4 对话框数据交换和对话框数据校验 351

8.1.5 与对话框中的控件相互作用 357

8.1.6 DlgDemo1应用程序 358

8.2 无模式对话框 370

8.3 用对话框作为主窗口 383

8.4 属性表 399

8.5 公用对话框 417

8.5.1 修改公用对话框 419

8.5.2 Phones应用程序 420

第9章 文档、视图和单文档界面 439

第Ⅱ部分 文档/视图体系结构 439

9.1 文档/视图基础知识 440

9.1.1 再看InitInstance函数 441

9.1.2 文档对象 443

9.1.3 视图对象 447

9.1.4 框架窗口对象 449

9.1.5 动态对象创建 449

9.1.6 有关SDI文档模板的其他内容 450

9.1.7 用操作系统命令解释器注册文档类型 452

9.1.8 命令传送 453

9.1.9 预定义的命令ID和命令处理程序 455

9.2.1 SdiSquares应用程序 457

9.2 第一个文档/视图应用程序 457

9.2.2 循序渐进地创建SdiSquares 477

9.3 文档+视图=较少的工作量 479

第10章 滚动视图、HTML视图以及其他视图类型 481

10.1 滚动视图 481

10.1.1 CScrollView基础 482

10.1.2 CScrollView操作 485

10.1.3 优化滚动操作 486

10.1.4 ScrollDemo应用程序 486

10.1.5 普通视图转换为滚动视图 495

10.2 HTML视图 495

10.2.1 CHtmlView操作 496

10.2.2 CHtmlView可覆盖函数 497

10.2.3 在基于CHtmlView的应用程序中使用DHTML 499

10.2.4 树形视图 505

10.2.5 初始化树形视图 506

10.2.6 树形视图的成员函数和通知 508

10.2.7 DriveTree应用程序 509

10.3 列表视图 522

10.3.1 初始化列表视图 522

10.3.2 修改表现样式 524

10.3.3 在列表视图中排序 525

10.3.4 列表视图中的命中测试 526

10.3.5 WinDir应用程序 527

10.4 自制控件视图 541

第11章 多文档和多视图 543

11.1 MFC和多文档界面 543

11.1.1 同步文档的多个视图 545

11.1.2 MdiSquares应用程序 547

11.1.3 支持多个文档类型 567

11.1.4 MDI之外的其他选择 569

11.2 拆分窗口 569

11.2.1 动态拆分窗口 570

11.2.2 Sketch应用程序 571

11.2.3 静态拆分窗口 590

11.2.4 Wanderer应用程序 591

11.2.5 自定义命令传送 622

11.2.6 嵌套拆分窗口 624

11.2.7 带有多种视图类型的动态拆分窗口 626

第12章 工具栏、状态栏和组合栏 627

12.1 工具栏 627

12.1.1 创建和初始化工具栏 628

12.1.2 固定式和浮动式工具栏 632

12.1.3 控制工具栏的可见性 635

12.1.4 保持工具栏按钮和应用程序同步 636

12.1.5 添加工具提示和状态栏工具说明 638

12.1.6 在工具栏中添加非按钮控件 641

12.1.7 更新非按钮控件 642

12.1.8 使工具栏设置永久化 643

12.1.9 AppWizard提供的工具栏支持 644

12.2 状态栏 644

12.2.1 创建和初始化状态栏 645

12.2.2 为菜单项提供上下文相关帮助 647

12.2.3 创建自定义状态栏窗格 647

12.2.4 AppWizard提供的状态栏支持 650

12.3 总结:MYWORD应用程序 651

12.3.1 主工具栏 671

12.3.2 样式栏 672

12.3.3 再谈CRichEditView 675

12.4 组合栏 676

第13章 打印和打印预览 679

13.1 通过文档和视图打印 679

13.1.1 Windows打印体系结构 679

13.1.2 MFC打印体系结构 684

13.1.3 打印预览 690

13.2 只有打印功能的应用程序 692

13.2.1 黑白打印预览 697

13.3 复杂的打印应用程序 698

13.3.1 串行化的唯一方法 712

13.4 打印技巧与诀窍 713

13.4.1 使用“打印”对话框中的“选定范围”单选按钮 713

13.4.2 不要假定——实践出真知! 714

13.4.3 添加默认分页支持 716

13.4.4 枚举打印机 717

第Ⅲ部分 高级篇 721

第14章 计时器和空闲处理 721

14.1 计时器 721

14.1.1 设置计时器:方法1 722

14.1.2 响应WM_TIMER消息 724

14.1.3 设置计时器:方法2 726

14.2 CLOCK应用程序 728

14.1.4 清除计时器 728

14.2.1 处理计时器消息 740

14.2.2 获得当前时间:CTime类 741

14.2.3 使用MM_ISOTROPIC映射方式 741

14.2.4 隐藏和显示标题栏 742

14.2.5 实现客户区拖动 744

14.2.6 使用系统菜单作为上下文菜单 745

14.2.7 最顶层窗口 746

14.2.8 保留配置设置 747

14.2.9 控制窗口大小:WM_GETMINMAXINFO消息 751

14.3 空闲处理 752

14.3.1 使用Onldle 753

14.3.2 对比空闲处理和多线程处理 755

15.1 调色板 757

第15章 位图、调色板以及区域 757

15.1.1 Windows使用颜色的方式 758

15.1.2 逻辑调色板和CPalette类 759

15.1.3 创建逻辑调色板 760

15.1.4 实现逻辑调色板 762

15.1.5 用调色板颜色绘图 763

15.1.6 WM_QUERYNEWPALETTE和WM_PALETTECHANGED消息 764

15.1.7 确定是否需要逻辑调色板 766

15.1.8 PaletteDemo应用程序 767

15.1.9 调色板动画 773

15.1.10 ∷SetSystemPaletteUse函数 779

15.2 位图 779

15.2.1 DDB和CBitmap类 780

15.2.2 按位将位图传送到屏幕和其他设备 781

15.2.3 位图资源 783

15.2.4 DIB和DIB分区 784

15.2.5 位块传送、光栅操作以及颜色映射 785

15.2.6 BitmapDemo应用程序 788

15.2.7 编写BMP文件查看器 803

15.2.8 再论∷LoadImage 820

15.3 区域 820

15.3.1 区域和CRgn类 821

15.3.2 RegionDemo应用程序 824

第16章 公用控件 828

16.1 公用控件基础 829

16.1.1 创建公用控件 831

16.1.2 处理通知:WM_NOTIFY消息 833

16.2 滑杆、微调按钮和工具提示控件 836

16.2.1 滑杆控件 837

16.2.2 微调按钮控件 839

16.2.3 工具提示控件 842

16.2.4 GridDemo应用程序 846

16.3 图像列表和ComboBoxEx控件 857

16.3.1 图像列表 857

16.3.2 ComboBoxEx控件 859

16.3.3 PathList应用程序 862

16.4 进度控件和动画控件 872

16.4.1 进度控件 873

16.4.2 动画控件 874

16.5 IP地址控件和其他数据输入控件 876

16.5.1 IP地址控件 876

16.5.2 热键控件 877

16.5.3 月历控件 878

16.5.4 日期-时间拾取控件 880

第17章 线程和线程同步化 884

17.1 线程 885

17.1.1 创建工作者线程 885

17.1.2 创建UI线程 887

17.1.3 暂停和继续执行线程 888

17.1.4 使线程睡眠 889

17.1.5 终止线程 890

17.1.6 自动删除CWinThread 890

17.1.7 结束另一个线程 892

17.1.8 线程、进程以及优先级别 894

17.1.9 在多线程应用程序中使用C运行时函数 897

17.1.10 跨线程界限调用MFC成员函数 898

17.1.11 您的第一个多线程应用程序 901

17.2 线程同步 909

17.2.1 临界区 910

17.2.2 互斥量 912

17.2.3 事件 913

17.2.4 信号量 916

17.2.5 CSingleLock和CMultiLock类 918

17.2.6 编写线程安全类 920

17.2.7 ImageEdit应用程序 922

17.3 小知识点 947

17.3.1 消息泵 947

17.3.2 执行其他进程 949

17.3.3 文件改变通知 950

第Ⅳ部分 COM,OLE和ActiveX 955

第18章 MFC和组件对象模型 955

18.1 组件对象模型 955

18.1.1 实例化COM对象 957

18.1.2 对象生存期 958

18.1.3 获得接口指针 959

18.1.4 COM服务器 960

18.1.5 定位透明度 960

18.1.6 对象链接和嵌入 962

18.1.7 Active Documents 964

18.1.8 ActiveX 964

18.2 MFC和COM 965

18.2.1 多重继承 965

18.2.2 嵌套类 967

18.2.3 MFC和嵌套类 970

18.2.4 MFC实现IUnknown的方法 971

18.2.5 接口映射 973

18.2.6 MFC和聚合 974

18.2.7 MFC和类厂 976

18.2.8 总结 977

第19章 剪贴板和OLE拖放 978

19.1 传统剪贴板 978

19.1.1 剪贴板格式 980

19.1.2 私有剪贴板格式 984

19.1.3 以多种格式提供数据 984

19.1.4 查询有效数据格式 985

19.1.5 延时再现 988

19.1.6 创建可重用剪贴板类 990

19.2 OLE剪贴板 990

19.2.1 OLE剪贴板基础 991

19.2.2 MFC、全局内存和OLE剪贴板 996

19.2.3 使用其他存储媒体 997

19.2.4 将OLE剪贴板看作CFile 999

19.2.5 多种格式和多种存储媒体 1001

19.2.6 检查数据有效性 1001

19.2.7 用COleDataSource进行延时再现 1003

19.2.8 COleDataSource和COleDataObject复习 1005

19.3 OLE拖放 1006

19.3.1 拖放来源剖析 1008

19.3.2 拖放目标剖析 1010

19.3.3 MFC对OLE拖放的支持 1013

19.3.4 拖放目标滚动 1015

19.4 综合应用:WIDGET应用程序 1015

19.4.1 AfxOleInit函数 1040

第20章 Automation 1042

20.1 Automation基础 1042

20.1.1 IDispatch:所有Automation的基础 1044

20.1.2 Automation数据类型 1046

20.1.3 滞后绑定与超前绑定的对比 1051

20.1.4 双接口 1052

20.1.5 类型库 1052

20.2 MFC Automation服务器 1054

20.2.1 MFC、IDispatch和调度映射 1054

20.2.2 编写Automation服务器 1055

20.2.3 添加Automation方法 1057

20.2.4 添加Automation属性 1058

20.2.5 简单的Automation服务器 1059

20.2.6 Automation的分层结构 1061

20.2.7 更复杂的Automation服务器 1063

20.3 MFC Automation客户 1090

20.3.1 PieClient应用程序 1090

20.3.2 连接到运行着的Automation服务器 1104

第21章 ActiveX控件 1107

21.1 ActiveX控件基础 1108

21.1.1 方法、属性和事件 1108

21.1.2 自定义型和备用型 1109

21.1.3 环境属性 1109

21.1.5 ActiveX控件体系结构 1110

21.1.4 控件状态 1110

21.1.6 ActiveX控件容器 1112

21.1.7 MFC对ActiveX控件的支持 1113

21.2 创建ActiveX控件 1116

21.2.1 运行ControlWizard 1117

21.2.2 实现OnDraw 1121

21.2.3 使用环境属性 1122

21.2.4 添加方法 1123

21.2.5 添加属性 1124

21.2.6 使属性成为持久属性 1125

21.2.7 自定义控件的属性表 1127

21.2.8 给控件属性表添加页 1128

21.2.9 添加事件 1129

21.2.10 事件映射表 1131

21.2.11 创建一个ActiveX控件 1132

21.2.12 测试及调试ActiveX控件 1146

21.2.13 注册ActiveX控件 1148

21.3 在MFC应用程序中使用ActiveX控件 1149

21.3.1 调用ActiveX控件的方法 1151

21.3.2 处理事件 1152

21.3.3 CalUser应用程序 1153

21.3.4 在非对话框窗口中使用ActiveX控件 1158

21.3.5 在Web网页中使用ActiveX控件 1159

21.4 高级论题 1160

21.4.1 无窗口控件 1160

21.4.2 控件子类化 1162

21.4.3 控法许可 1164

相关图书
作者其它书籍
返回顶部