《深入浅出MFC》下载
作者简介
侯俊杰,先生不知何许人也,闲静少言,不慕荣利。好读书,求甚解;每有会意,击节高歌,欣然忘食。嗜咖啡,妻严,不能常得。亲旧知其如此,或备而礼之,或置而招之;造饮辄尽,期在必快。既快而退,曾不吝去留。善善恶恶,贤贤贱不肖。曲高和寡,直言罪人,晏如也。胸有点墨,心无城府。常著文章白娱,颇示己志。忘怀得失,以此自终。
目录
第0章 你一定要知道(导读)
这本书适合谁
你需要什么技术基础
你需要什么软硬件环境
让我们使用同一种语言
本书符号习惯
本书例程的取得
范例程序说明
与前版本之差异
如何联络作者
第一篇 勿在浮砂筑高台
第1章 Win32程序基本概念
Win32程序开发流程
需要什么函数库(.LIB)
需要什么头文件(.H)
以消息为基础,以事件驱动之(message based,event driven)
一个具体而微的Win32程序
程序进入点WinMain
窗口类之注册与窗口之诞生
消息循环
窗口的生命中枢:窗口函数
消息映射(Message Map)的雏形
对话框的运行
模块定义文件(.DEF)
资源描述档(.RC)
Widnows程序的生与死
空闲时间的处理:OnIdle
Console程序
Console程序与DOS程序的差别
Console程序的编译链接
JBACKUP:Win32 Console程序设计
MFCCON:MFC Console程序设计
行程与线程(Process and Thread)
核心对象
一个行程的诞生与死亡
产生子行程
一个线程的诞生与死亡
以_beginthreadex取代CreateThread
线程优先级(Priority)
多线程程序设计实例
第2章 C++的重要性质
类及其成员——谈封装(encapsulation)
基类与派生类:谈继承(Inheritance)
this指针
虚拟函数与多态(Polymorphism)
类与对象大解剖
Object slicing与虚拟函数
静态成员(变量与函数)
C++程序的生与死:兼谈构造函数与解构函数
四种不同的对象生存方式(in stack、in heap、global、local static)
执行期类型信息(RTTI)
动态生成(Dynamic Creation)
异常处理(Exception Handling)
Template
Template Functions
Template Classes
Template的编译与链接
第3章 MFC六大关键技术之仿真
MFC类层次结构
Frame 1范例程序
MFC程序的初始化过程
Frame 2范例程序
RTTI(执行期类型识别)
类别型录网与CRuntimeClass
DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏
Frame 3范例程序
IsKindOf(类型识别)
Frame 4范例程序
Dynamic Creation(动态生成)
DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE宏
Frame 6范例程序
Persistence(永久保存)机制
Serialize(数据读写)
DECLARE_SERIAL/IMPLEMENT_SERIAL宏
没有范例程序
Message Mapping(消息映射)
Frame 7范例程序
Command Routing(命令传递)
Frame 8范例程序
本章回顾
第二篇 欲善工事先利其器
第4章 Visual C++集成开发环境
安装与组成
四个重要的工具
内务府总管:Visual C++集成开发环境
关于project
关于工具设定
Source Browser
Online Help
调试工具
VC++调试器
Exception Handling
程序代码产生器:AppWizard
东圈西点完成MFC程序骨干
威力强大的资源编辑器
Icon编辑器
Cursor编辑器
Bitmap编辑器
工具栏(Toolbar)编辑器
VERSIONINFO资源编辑器
字符串表格(Accelerator)编辑器
菜单(Menu)编辑器
加速键(Accelerator)编辑器
对话框(Dialog)编辑器
Console程序的项目管理
第三篇 浅出MFC程序设计
第5章 总观Application Framework
什么是Application Framework?
侯捷怎么说
我怎么说
别人怎么说
为什么使用Application Framework
Microsoft Foundation Classes(MFC)
白头宫女话天宝:Visual C++与MFC
纵览MFC
General Purpose classes
CObject
数据处理类(collection classes)
杂项类
异常处理类(exception handling classes)
Windows API classes
Application framework classes
High level Abstractions
Afx全局函数
MFC宏(macros)
MFC数据类型(data types)
第6章 MFC程序的生死因果
不二法门:熟记MFC类的层次结构
需要什么函数库?
需要什么头文件?
简化的MFC程序结构——以Hello MFC为例
Hello程序程序代码
MFC程序的来龙去脉(causal relations)
我只借用两个类:CWinApp和CFrameWnd
CWinApp——取代WinMain的地位
CFrameWnd——取代WndProc的地位
Application object
隐晦不明的WinMain
AfxWinInit——AFX内部初始化操作
CWinApp::InitApplication
CMyWinApp::InitInstance
CFrameWnd::Create产生主窗口(并先注册窗口类)
奇怪的窗口类名称Afx:b:14ae:6:3e8f
窗口显示与更新
CWinApp::Run——程序生命的活水源头
把消息与处理函数连接在一起:Message Map机制
来龙去脉总整理
Callback函数
空闲时间(idle time)的处理:OnIdle
Dialog与Control
通用对话框(Common Dialogs)
本章回顾
第7章 简单而完整:MFC骨干程序
不二法门:熟记MFC类层次结构
MFC程序的UI新风貌
Document/View支撑你的应用程序
利用Visual C++工具完成Scribble step0
骨干程序使用哪些MFC类?
Document Template的意义
Scribble的Document/View设计
主窗口的诞生
工具栏和状态栏的诞生(Toolbar&Status bar)
鼠标拖放(Drag and Drop)
消息映射(Message Map)
标准菜单File/Edit/View/Window/Help
对话框
改用CEditView
第四篇 深入MFC程序设计
第8章 Document-View深入探讨
为什么需要Document-View(形而上)
Document
View
Document Frame(View Frame)
Document Template
CDocTemplate管理CDocument/CView/CFrameWnd
Scribble Step1的Document——数据结构设计
MFC Collection Classes的选用
CScribbleDoc的修改
文件:一连串的线条
线条与坐标点
Scribble Step 1的View:数据重绘与编辑
CScribbleView的修改
View的重绘操作:GetDocument和OnDraw
ClassWizard的辅佐
WizardBar的辅佐
Serialize:对象的档案读写
Serialization以外的档案读写操作
台面上的Serialize操作
台面下的Serialize写档奥秘
台面下的Serialize读档奥秘
DYNAMIC/DYNCREATE/SERIAL三宏
Serializable的必要条件
CObject类
IsKindOf
IsSerializable
CObject::Serialize
CArchive类
operator《和operator》
效率考虑
自定SERIAL宏给抽象类使用
在CObList中加入CStroke以外的类
Document与View交流——为Step4做准备
第9章 消息映射与命令传递
到底要解决什么
消息分类
万流归宗Command Target(CCmdTarget)
三个奇怪的宏,一张巨大的网
DECLARE_MESSAGE_MAP宏
消息映射网的形成:BEGIN…/ON…/END…宏
米诺托斯(Minotauros)与西修斯(Theseus)
二万五千里长征——消息的传递
直线上溯(一般Windows消息)
拐弯上溯(WM_COMMAND命令消息)
罗塞达碑石:AfxSig_xx的奥秘
Scribble Step2:UI对象的变化
改变菜单
改变工具栏
利用ClassWizard连接命令项识别码与命令处理函数
维护UI对象状态(UPDATE_COMMAND_UI)
本章回顾
第10章 MFC与对话盒
对话框编辑器
利用ClassWizard连接对话框与其专用类
对话框的消息处理函数
对话框数据交换与校验(DDX&DDV)
如何唤起对话框
本章回顾
第11章 View功能的加强与重绘效率的提高
同时修改多个Views:UpdateAllViews和OnUpdate
在View中定义一个hint
把hint传给OnUpdate
利用hint增加重绘效率
可卷动的窗口:CScrollView
大窗口中的小窗口:Splitter
切分窗口的功能
切分窗口的程序概念
切分窗口的实现
本章回顾
第12章 打印与预览
概述
打印操作的后台原理
MFC默认的打印机制
Scribble打印机制的增强
打印机的页和文件的页
配置GDI绘图工具
尺寸与方向:关于映射方式(坐标系统)
分页
页眉与页脚
动态计算页码
打印预览(Print Preview)
本章回顾
第13章 多重文件与多重显示
MDI和SDI
多重显示(Multiple Views)
窗口的动态切分
窗口的静态切分
CreateStatic和CreateView
窗口的静态三叉切分
Graph范例程序
静态切分窗口之观念整理
同源子窗口
CMDIFrameWnd::OnWindowNew
Text范例程序
非标准做法的缺点
多重文件
新的Cocument类
新的Document Template
新的UI系统
新文件的档案读写操作
第14章 MFC多线程程序设计
从操作系统层面看线程
三个观念:模块、行程和线程
线程优先级(Priority)
线程调度(Scheduling)
Thread Context
从程序设计层面看线程
Worker Threads和UI Threads
错误观念
正确态度
MFC多线程程序设计
探索CWinThread
产生一个Worker Thread
产生一个UI Thread
线程的结束
线程与同步控制
MFC多线程程序例程
第15章 定制一个AppWizard
到底Wizard是什么?
Custom AppWizard的基本操作
剖析AppWizard Components
Dialog Templates和Dialog classes
Macros
Directives
动手修改Top Studio AppWizard
利用资源编辑器修改IDD_CUSTOM1对话框画面
利用ClassWizard修改IDD_CUSTOM1对话框的对应类CCustomlDlg
改写OnDismiss虚拟函数,在其中定义macros
修改text template
Top Studio AppWizard执行结果
更多的信息
第16章 站上众人的肩膀——使用Components&activeX Controls
什么是Component Gallery
使用Components
Splash screen
system Info for About Dlg
Tip of the Day
Components实际运用:ComTest程序
修改ComTest程序内容
使用ActiveX Controls
ActiveX Control基础观念:Properties、Methods、Events
ActiveX Controls的五大使用步骤
使用ActiveX Control:OcxTest程序
第五篇 附录
附录A 无责任书评:从摇篮到坟墓Windows的完全学习
无责任书评:MFC四大天王
附录B Scribble Step 5完整原始码
附录C Visual C++5.0MFC范例程序一览
附录D 以MFC重建DBWIN
百度云及其他网盘下载地址:点我
《深入浅出MFC》下载的更多相关文章
- 评侯捷的<深入浅出MFC>和李久进的<MFC深入浅出>
侯捷的<深入浅出mfc>相信大家都已经很熟悉了,论坛上也有很多介绍,这里我就不多说了. 而李久进的<mfc深入浅出>,听说的人可能就少得多.原因听说是这本书当时没有怎么宣传,而 ...
- 深入浅出MFC——Document-View深入探讨(五)
1. MFC之所以为Application Framework,最重要的一个特征就是它能够将管理数据的程序代码和负责数据显示的程序代码分离开来,这种能力由MFC的Document/View提供.Doc ...
- 深入浅出MFC——MFC六大关键技术仿真(二)
1. 仿真MFC目的:以MFC为例,学习application framework的内部运行.MFC六大关键技术: (1)MFC程序的初始化过程 (2)RTTI(Runtime Type Inform ...
- 《深入浅出MFC》系列之运行时类型识别(RTTI)
/********************************************************************************** 发布日期:2017-11-13 ...
- OpenCASCADE(一) VS2017+OpenCASCADE+MFC 下载配置安装运行单文档程序画个基本图形
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12368154.html 一.下载OpenCASCADE 官网下载是: http://www.o ...
- 深入浅出MFC——MFC多线程程序设计(七)
1. 从操作系统层面看线程——三个观念:模块(MDB).进程(PDB).线程(TDB) 2. “执行事实”发生在线程身上,而不在进程身上.也就是说,CPU调度单位是线程而非进程.调度器据以排序的,是每 ...
- 深入浅出MFC——消息映射与命令传递(六)
1. 消息分类: 2. 万流归宗——Command Target(CCmdTarget): 3. "消息映射"是MFC内建的一个信息分派机制.通过三个宏(DECLARE_MESSA ...
- 深入浅出MFC——MFC骨干程序(四)
1. 熟记MFC类层次结构: 2. AppWizard可以为我们制作出MFC程序骨干: 3. Document/View支撑你的应用程序:Document/View的价值在于,这些MFC类已经把一个应 ...
- 深入浅出MFC——MFC程序的生死因果(三)
1. 本章主要目的:从MFC程序代码中检验出一个Windows程序原本该有的程序进入点(WinMain).窗口类注册(RegisterClass).窗口产生(CreateWindow).消息循环(Me ...
随机推荐
- 在Winform窗体中使用WPF控件(附源码)
原文:在Winform窗体中使用WPF控件(附源码) 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件.原有是我在百度上搜索相关信息无果,遂干脆动手自己实现. W ...
- 动态加载并执行Win32可执行程序
本文所贴出的PoC代码将告诉你如何通过CreateProcess创建一个傀儡进程(称之为可执行程序A),并把dwCreationFlags设置为CREATE_SUSPENDED,然后把另一个可执行程序 ...
- LOCK_TIMEOUT
SET LOCK_TIMEOUT 1000 begin tran TranNameA select * from tablenameA WITH (updlock) where... waitfor ...
- Win10《芒果TV》送7天免费会员,邀您抢先看萌心自制《妈妈是超人3》
<妈妈是超人>第三季萌心归来,霍思燕,贾静雯,黄圣依,邓莎联合释放"妈妈的声音",嗯哼,咘咘,波妞,安迪,大麟子五位萌娃共同出镜,萌化屏幕.Win10<芒果TV& ...
- Android自定义View入门(一)
最近在写一个关于音乐播放的应用,写到播放界面UI时,就想自己实现的一个播放界面.那么如何实现自定义View呢?通过查看他人博客和Android官方开发文档,初步了解了一些浅显的内容.在此记录,已供需要 ...
- ASP.NET Core 下自定义模型绑定,去除字符串类型前后的空格
效果图: 01 02 直接贴代码了: NoTrim public class NoTrimAttribute : Attribute { } 我们自定义的模型绑定提供程序 /// <summar ...
- windows下Qt5.2 for android开发环境搭建
windows下Qt5.2 forAndroid开发环境配置 1.下载安装Qt 5.2.0 for Android (Windows 32-bit) http://qt-project.org/d ...
- 使用sikuli软件进行自动化编程
因为工作上的需要,某个信息系统不健全,因此仅仅需要一个一个的点击确认,客户端是网页版本的,抓包太复杂了,如何快速的能够自动化操作? 想到了之前学习python的时候,发现了一个基于java的图片编程软 ...
- Qt Style Sheet实践(二):组合框QComboBox的定制(24K纯开源)——非常漂亮
组合框是一个重要且应用广泛的组件,一般由两个子组件组成:文本下拉单部分和按钮部分.在许多既需要用户选择.又需要用户手动输入的应用场景下,组合框能够很好的满足我们的需求.如我们经常使用的聊天软件QQ登录 ...
- python之mock模块基本使用
mock简介 mock原来是python的第三方库 python3以后mock模块已经整合到了unittest测试框架中,不用再单独安装 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个 ...