图书介绍
Visual C++权威剖析 MFC的原理、机制与开发实例PDF|Epub|txt|kindle电子书版本网盘下载
![Visual C++权威剖析 MFC的原理、机制与开发实例](https://www.shukui.net/cover/73/32291822.jpg)
- 辛长安,王颜国编著 著
- 出版社: 北京:清华大学出版社
- ISBN:7302170207
- 出版时间:2008
- 标注页数:478页
- 文件大小:220MB
- 文件页数:496页
- 主题词:C语言-程序设计
PDF下载
下载说明
Visual C++权威剖析 MFC的原理、机制与开发实例PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 C++关键语法及其在MFC中的应用第1章 重载2
1.1 函数重载2
1.1.1 问题的提出2
1.1.2 如何区分重载函数2
1.1.3 重载函数使用实例3
1.1.4 编译器调用重载函数的规则4
1.1.5 在父类和子类中定义重载函数5
1.2 运算符重载7
1.2.1 运算符重载的定义7
1.2.2 运算符重载的特点8
1.2.3 将运算符重载为友元和成员函数9
1.2.4 operator调用形式11
1.2.5 重载运算符的相关问题12
1.3 函数重载在MFC中的应用举例15
1.4 运算符重载在MFC中的应用举例16
第2章 虚拟函数18
2.1 问题的提出:静态联编与动态联编18
2.2 引入虚拟函数20
2.2.1 实例:定义虚拟函数20
2.2.2 实例:编写通用函数21
2.2.3 实例:定义主函数21
2.3 虚拟函数的实现机制22
2.3.1 类和对象的内存分配机制22
2.3.2 基类与派生类的内存分配关系23
2.3.3 非虚拟函数的内存分配机制25
2.3.4 深入:虚拟函数的内存分配机制25
2.4 虚拟函数的应用27
2.4.1 不改变父类的代码,可以改变父类的行为28
2.4.2 不知道对象的类型,可以执行对象的特定操作30
2.4.3 如果类包含虚拟成员函数,则将此类的析构函数也定义为虚拟函数37
2.5 纯虚拟函数39
2.6 虚拟函数在MFC中的应用举例41
第3章 静态成员和类模板43
3.1 静态成员43
3.1.1 C语法中的静态变量43
3.1.2 C++中的静态成员变量44
3.1.3 静态成员函数46
3.1.4 静态成员变量在MFC中的应用举例47
3.1.5 静态成员函数在MFC中的应用举例48
3.2 类模板49
3.2.1 问题的提出49
3.2.2 类模板的定义51
3.2.3 使用类模板和模板类58
3.2.4 模板在MFC中的应用举例62
第4章 多重继承和内嵌类64
4.1 继承方式与访问权限64
4.1.1 派生类的继承权限64
4.1.2 在基类中定义数据成员的原则65
4.1.3 以公有方式派生子类66
4.2 多重继承和虚拟基类67
4.2.1 一个例子67
4.2.2 多重继承的二义性68
4.2.3 使用虚拟基类解决二义性问题70
4.2.4 使用虚拟基类需要注意的问题71
4.3 内嵌类与类合成74
4.3.1 内嵌类的定义74
4.3.2 内嵌类的使用方法75
4.3.3 内嵌类的应用价值77
4.3.4 类合成85
4.4 类继承与类合成的应用86
4.4.1 构造初始化和赋值操作86
4.4.2 继承与合成的选择90
4.5 多重继承和内嵌类在COM中的应用92
第2篇 MFC核心机制98
第5章 MFC类结构98
5.1 CObject类99
5.1.1 支持类诊断99
5.1.2 提供运行时类信息102
5.1.3 支持类的连载106
5.2 CCmdTarget类108
5.3 CWinThread类109
5.3.1 虚函数InitInstance110
5.3.2 虚函数Run110
5.3.3 虚函数ExitInstance112
5.4 CWnd类112
5.4.1 绘制窗口112
5.4.2 操作窗口子控件113
5.4.3 窗口定时器113
5.4.4 窗口消息的相关函数113
5.4.5 默认的消息处理函数113
第6章 CWnd类与Windows窗口的关系116
6.1 使用WIN32 API创建窗口116
6.2 亲自动手创建窗口封装类119
6.2.1 实例代码119
6.2.2 原理分析132
6.3 CWnd类如何封装Windows窗口132
6.3.1 使用操作映射的函数132
6.3.2 CWnd如何处理窗口消息134
第7章 CWnd的派生类137
7.1 CFrameWnd类137
7.1.1 CFrameWnd的创建137
7.1.2 管理视图对象139
7.1.3 管理控制条140
7.1.4 分发命令消息141
7.1.5 必要的消息处理142
7.2 CView类142
7.2.1 关联文档对象142
7.2.2 视图的绘制143
7.2.3 虚函数virtual void OnUpdate(CView* pSender,LPARAM,CObject*)144
7.2.4 虚函数virtual void OnInitialUpdate()144
7.2.5 虚函数virtual void CalcWindowRect(LPRECT lpClientRect,UINT nAdjustType)144
7.2.6 虚函数virtual void PostNcDestroy();145
7.2.7 虚函数virtual BOOL OnCmdMsg(UINT,int,void*,AFX CMDHANDLERINFO*)145
7.2.8 虚函数virtual void OnActivateView(BOOL,CView*,CView*)146
7.3 CDialog类146
7.4 模态对话框的消息循环146
7.4.1 模态对话框的创建与模式循环147
7.4.2 结束模式循环150
7.4.3 创建普通的模态窗口151
7.5 对话框的命令路由151
第8章 窗口操作153
8.1 检索窗口153
8.1.1 根据标题和窗口类查找窗口153
8.1.2 根据窗口的相对位置或所属关系查找窗口154
8.1.3 检索窗口的应用155
8.2 屏幕坐标与客户区坐标157
8.3 窗口之间的层次关系158
8.3.1 窗口实例的信息结构158
8.3.2 桌面窗口(第一层窗口)158
8.3.3 顶级窗口(第二层窗口)158
8.3.4 子窗口(第三层以下窗口)159
8.3.5 重叠窗口与弹出窗口的区别159
8.4 父窗口与子窗口159
8.4.1 子窗口的刷新159
8.4.2 子窗口的显示设备上下文160
8.4.3 处理WM_CTLCOLOR消息161
8.4.4 顶级窗口向子窗口转发系统消息162
8.4.5 子窗口向父窗口发送通知消息163
8.4.6 父窗口向子窗口发送反射消息164
8.4.7 检索父窗口165
8.5 Windows窗口类166
8.5.1 窗口类的结构167
8.5.2 系统定义的窗口类169
8.6 窗口的子类化和超类化170
8.6.1 实例子类化和全局子类化170
8.6.2 子类化的规则与局限172
8.6.3 使用超类化代替子类化173
第9章 消息映射与消息处理174
9.1 MFC的消息映射174
9.1.1 消息映射机制174
9.1.2 消息映射的宏定义176
9.2 非窗口消息:命令消息179
9.2.1 命令ID179
9.2.2 命令消息映射项宏定义179
9.3 非窗口消息:通知消息180
9.3.1 通过WM_COMMAND发送的通知消息180
9.3.2 WM_NOTIFY通知消息与ON_NOTIFY宏180
9.3.3 几个特殊的通知消息182
9.4 非窗口消息:反射消息183
9.5 非窗口消息:非窗口消息的传递路由184
9.6 非窗口消息:非窗口消息的扩展197
9.6.1 处理对象扩展197
9.6.2 发送对象扩展198
第10章 特殊消息和处理函数200
10.1 空闲消息处理200
10.1.1 UI线程的空闲处理200
10.1.2 主框架窗口的空闲处理202
10.1.3 对话框的空闲处理203
10.2 命令状态更新消息203
10.2.1 命令状态更新的实现机制203
10.2.2 在主框架窗口中实现命令状态更新205
10.2.3 在对话框中实现命令状态更新206
10.3 使用OnCmdMsg()函数分发非窗口消息211
第3篇 窗口编程216
第11章 控件子窗口216
11.1 控件的创建216
11.1.1 使用API函数创建控件216
11.1.2 使用MFC封装类创建控件217
11.1.3 使用对话框模板创建控件219
11.2 控件的子类化220
11.3 控件的属主画与自定义画概述223
11.4 属主画消息处理和虚拟函数223
11.4.1 属主画消息的处理224
11.4.2 属主画反射消息的处理实例225
11.4.3 自画虚拟函数DrawItem()226
11.4.4 自画虚拟函数MeasureItem()227
11.4.5 自画虚拟函数CompareItem()227
11.4.6 自画虚拟函数DeleteItem()228
11.5 几个控件的属主画特性228
11.5.1 LISTBOX的属主画特性228
11.5.2 BUTTON的属主画特性231
11.5.3 COMBOBOX的属主画特性234
11.5.4 LISTCTRL的属主画特性237
11.6 控件的自定义绘图237
11.6.1 绘制方式237
11.6.2 CDDS_PREPAINT阶段239
11.6.3 CDDS_ITEMPOSTPAINT阶段240
第12章 自定义控件242
12.1 窗口类242
12.2 通知消息244
12.3 绘制245
12.4 分隔条控件246
12.4.1 基本功能246
12.4.2 控件的封装类以及相应函数代码247
第13章 开发使用控制条255
13.1 为控制条按需分配客户区255
13.1.1 API函数HDWP::BeginDeferWindowPos()255
13.1.2 API函数HDWP DeferWindowPos()256
13.1.3 API函数BOOL EndDeferWindowPos()256
13.1.4 具体代码256
13.2 控制条基类CControlBar259
13.2.1 绘制控制条259
13.2.2 空闲处理262
13.2.3 向父窗口传递特殊消息263
13.2.4 操作控制条风格264
13.3 控制条的停靠与浮动265
13.3.1 控制条的停靠265
13.3.2 控制条的浮动268
13.4 实现停靠浮动子窗口271
第14章 工具栏和菜单优化281
14.1 添加按钮文本281
14.2 创建工具栏的子控件283
14.3 动态创建菜单287
14.3.1 菜单封装类CMenu287
14.3.2 编辑菜单条目289
14.3.3 为窗口关联主菜单291
14.3.4 创建浮动的弹出菜单292
14.4 菜单的属主画293
14.4.1 菜单的属主画机制293
14.4.2 菜单的自画实现机制293
14.4.3 自绘弹出菜单295
第15章 单文档和多文档编程303
15.1 CWinApp类全局对象303
15.2 注册表和INI文件操作304
15.3 命令行参数处理305
15.3.1 MFC预定义的参数305
15.3.2 自定义命令行参数308
15.4 单文档(SDI)模板框架309
15.4.1 构造文档模板类310
15.4.2 命令行参数的解析与处理311
15.4.3 直接创建相应对象的成员函数313
15.4.4 单文档非拆分视图的切换315
15.5 多文档(MDI)模板框架317
15.5.1 概述317
15.5.2 MDI主框架窗口的创建过程318
15.5.3 MDI主框架窗口的消息传递321
15.5.4 CMDIChildWnd子框架322
15.6 CDocument类的文档管理功能324
15.6.1 文档对象的连载324
15.6.2 新建文件325
15.6.3 打开文件325
15.6.4 保存文件327
15.6.5 关闭文件328
15.6.6 文档的“修改”标志330
15.6.7 文档对象与文档模板实例及视图的关联330
第16章 编写多框架的应用程序333
16.1 创建多框架的必要性333
16.2 自动创建的多框架程序334
16.2.1 一个实例334
16.2.2 多框架的秘密337
16.3 改进自动创建的多框架程序339
16.3.1 通过文档模板指针改进程序339
16.3.2 重载CWinApp::OnFileNew()接口改进程序340
16.4 手工创建多框架程序344
16.5 拆分视图:认识CSplitterWnd类349
16.5.1 概述349
16.5.2 动态拆分和静态拆分350
16.6 应用CView::OnCreate()消息处理函数实现拆分353
16.7 创建非视图的拆分子窗口355
16.8 拆分视图的创建删除和隐藏显示357
第4篇 高级技术364
第17章 屏幕绘图364
17.1 基类CDC364
17.1.1 CDC类的封装机制364
17.1.2 应用CDC类绘图366
17.2 CWindowDC与CClientDC367
17.3 WM_PAINT窗口消息与CPaintDC类370
17.3.1 窗口的无效区域产生WM_PAINT窗口消息370
17.3.2 设置设备上下文的剪裁区370
17.3.3 绘图前处理WM_ERASEBKGND消息371
17.3.4 主动刷新窗口绘图371
17.3.5 WM_PAINT消息的发送时机371
17.3.6 在WM_PAINT消息处理中使用CPaintDC类371
17.4 使用设备上下文的剪裁区提高刷新效率373
17.4.1 通过设备上下文的当前路径选择剪裁区域373
17.4.2 通过区域对象选择剪裁区域374
17.4.3 为曲线选择剪裁区域374
17.4.4 定时刷新曲线的程序示例375
第18章 打印383
18.1 准备打印设备和打印参数383
18.2 单页打印385
18.3 分页打印387
18.4 调整图文打印尺寸394
18.5 窗口的自动打印397
18.5.1 自动打印的消息处理397
18.5.2 自动打印客户区和非客户区398
第19章 多线程的创建与控制404
19.1 工作者线程和界面线程404
19.1.1 创建工作者线程404
19.1.2 用户界面线程与消息循环407
19.1.3 主线程与辅线程407
19.1.4 用户界面线程的创建409
19.2 线程和进程的优先级417
19.2.1 进程的优先级类418
19.2.2 线程的优先级别418
19.2.3 线程优先级值419
19.3 线程的终止419
19.3.1 线程的正常终止419
19.3.2 线程的强行终止420
19.4 线程间的互斥420
19.4.1 临界区421
19.4.2 互斥422
19.5 线程间的同步425
19.5.1 线程之间的间接制约和直接制约425
19.5.2 线程的同步运行425
19.6 线程间的资源共享428
19.6.1 共享对象句柄428
19.6.2 共享对象句柄的操作局限429
19.6.3 共享MFC对象430
19.6.4 多线程示例431
第20章 操作Web网页438
20.1 了解HTML超文本标记语言438
20.2 DHTML的定义439
20.2.1 窗口对象440
20.2.2 事件对象440
20.2.3 子框架对象441
20.2.4 屏幕对象441
20.2.5 文档对象441
20.2.6 全集对象(all)441
20.2.7 集合对象442
20.3 了解JavaScript和VBScript脚本语言442
20.4 将Web浏览器嵌入应用程序443
20.4.1 使用MSIE ActiveX控件443
20.4.2 应用CHtmlView视图类445
20.5 操作单框架网页元素447
20.5.1 COM接口与DHTML对象的关系447
20.5.2 访问文档元素448
20.5.3 访问单框架文档元素的程序示例450
20.6 操作多框架网页元素453
第21章 异常处理460
21.1 C++异常处理460
21.1.1 异常处理的关键字460
21.1.2 不进行异常处理的代码460
21.1.3 增加异常处理代码以后462
21.2 结构化异常处理464
21.3 异常处理中的资源释放465
21.3.1 局部对象的自动析构465
21.3.2 抛出对象的释放处理466
21.3.3 必要的资源清理和系统复位468
21.3.4 清理没有捕获的异常469
21.4 何时使用异常处理469
21.4.1 集中处理错误信息469
21.4.2 化简返回值的传递过程470
21.4.3 在构造函数中抛出异常470
21.5 MFC的异常处理470
21.5.1 MFC的异常类CException470
21.5.2 MFC的CException派生类:CArchiveException472
21.5.3 MFC的CException派生类:CFileException473
21.5.4 MFC的CException派生类:CDBException、CDaoException475
21.5.5 MFC的CException派生类:CResourceException、CUserException、CMemoryException、CNotSupportException475
21.5.6 自定义CException的派生类475