MFC Windows程序设计 第2版PDF电子书下载
- 电子书积分:29 积分如何计算积分?
- 作 者:(美)Jeff Prosise著;北京博彦科技发展有限责任公司译
- 出 版 社:北京:清华大学出版社
- 出版年份:2001
- ISBN:7900631925
- 页数:1166 页
鸣谢 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
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《情报学 服务国家安全与发展的现代情报理论》赵冰峰著 2018
- 《学前儿童发展心理学 第2版》刘万伦主编;王文秀,甘卫群,刘万伦编写人员 2019
- 《中国制造业绿色供应链发展研究报告》中国电子信息产业发展研究院 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019