MFC六大关键技术

视频教程地址观看:http://pan.baidu.com/s/1mhKQ6kK

1、MFC六大关键技术
sad
a)MFC程序的初始化过程:
从CWinApp类派生一个应用程序类;
使用派生类定义的全局变量(theApp);
在预定义头文件“stdafx.h”中,禁用“windows.h”取而代之afx开头的MFC头文件;
编译设置中选择用“Use MFC in a Static Library”;
在CWinApp生类中,重写InitInstance函数作为程序启动代码。

b)消息映射:
DECLARE_MESSAGE_MAP 在头文件中声明了2个static成员变量和1个成员函数:
(重点是一个结构体数组:将一些消息和函数关联)

BEGIN_MESSAGE_MAP 在源文件中定义了2个static成员变量的初始化和一个函数的定义;
END_MESSAGE_MAP 在源文件中对结构体数组的定义的结尾语句

c)其他四个关键技术:运行时类型识别(RTTI)、动态创建、永久保存、和消息分发。

例如:设置窗口图标。

2、SendMessage和PostMessage函数都是消息传递函数,两个函数的格式:(面试题)
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
BOOL PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

SendMessage和PostMessage这两个函数消息的区别是:
a)返回值类型不同:两个函数的4个参数的意义是一样的,只有返回值类型不同
(其实从数据上看他们一样是一个 32 位的数,只是意义不一样),
LRESULT 表示的是消息被处理后的返回值,BOOL 表示的是消息是不是传递成功。
b)PostMessage 是异步的,SendMessage 是同步的。
PostMessage 只把消息放入窗口消息队列中,不管消息被处理后的结果就返回;
而SendMessage等待消息被处理完了之后才返回。
c)如果在同一个线程内,常常使用SendMessage发送消息时,速度快并能得到返回的消息处理结果。
在不同线程或者进程之间,一般使用PostMessage发送消息,把消息先放入目标窗口的消息队列中,
然后由目标窗口通过消息循环自行派发处理。

3、消息的种类:
a)系统消息:0-WM_USER之间的数字:
b)用户消息:大于WM_USER以上的数字(程序员)
c)用户消息主要用于在窗口之间进行数据传递;

4、CWinApp类的成员介绍:
a)m_pszAppName:从CWinApp构造函数送入,如果没有送入去找StringTable,如果还没有最后找执行文件名;
b)m_hInstance:所有资源的总管:任何资源视图中的资源实际上都是通过这个句柄获取到的。

时间: 2024-08-26 13:30:07

MFC六大关键技术的相关文章

MFC的六大关键技术

1.MFC程序的初始化过程:消息映射机制:运行时类型识别:动态创建:永久保存:消息传送 2.SendMessage()和PostMessage()向本进程窗口或者其他进程窗口发送消息的 区别:SendMessage():阻塞函数:用于调用指定窗口的内部程序,直到处理完成以后才返回   PostMessage():非阻塞函数;将一个消息发送到一个窗口的消息队列后立即返回 3. 系统消息(0~0x3ff): 非系统消息(大于等于0x400)一般用于传送数据的 4.FindWindow()查找窗口 5

MFC 几大关键技术 自学笔记

1. RTTI 运行时类型识别:在程序执行过程中能够判断a对象是否是A类,返回true或者false: 类别型录网:用来记录类之间的关系,以链表的形式记录必要的信息,供查询: CRnutimeClass:用来刻画类别型录中用来记录类信息的链表,包含类名,next指针.static first指针: 宏定义DECLARE_DYNAMIC.IMPLEMENT_DYNAMIC 将CRuntimeClass添加到类中 2.动态创建 将对象的大小与创建函数都放到类别型录中,根据他们就可以在运行时创建对象.

界面库的六大关键技术之资源管理

0 引言 颜色.字体.图片.字符串都可以作为界面库的资源文件.资源管理的好坏,关系到界面库的性能和易用性.好的资源管理需要做到合理缓存.取用方便.缓存提高性能.取用方便提高易用性. 1 颜色管理 颜色资源可以保存在xml文件中,具体文件格式如下: <ColorTable> <Color Id="ID_COLOR_BLACK">255,60,60,60</Color> <Color Id="ID_COLOR_SEARCH_TIPS&qu

Caffe关键技术之仿真(一)

源 从当年流行的”编程高手必读Linux源码“,到市面上各色各样的XXX源码解析.剖析,我们已经看过太多太烂的源码分析. 读一份源码最痛之处在于,突然蹦出一大段代码,数据结构一个认不得,也不知道变量从何而来,函数更看都不懂. 似乎,那些很烂的作者,总喜欢迎难而上,你越不喜欢大段代码,他就每次首先贴一大段代码. 丝毫不对顺序做优化,也不知道标记出什么是重要的,什么是不重要的,连一份概况都没有. 这不叫源码分析,这叫随堂笔记. 高中时候,曾经拜读过侯捷老师的<深入浅出MFC>,其中最有趣的是它的第

MFC六大核心机制之二:运行时类型识别(RTTI)

上一节讲的是MFC六大核心机制之一:MFC程序的初始化,本节继续讲解MFC六大核心机制之二:运行时类型识别(RTTI). typeid运算子 运行时类型识别(RTTI)即是程序执行过程中知道某个对象属于某个类,我们平时用C++编程接触的RTTI一般是编译器的RTTI,即是在新版本的VC++编译器里面选用“使能RTTI”,然后载入typeinfo.h文件,就可以使用一个叫typeid()的运算子,它的地位与在C++编程中的sizeof()运算子类似的地方(包含一个头文件,然后就有一个熟悉好用的函数

VC++/MFC(VC6)开发技术精品学习资料下载汇总

工欲善其事,必先利其器,VC开发MFC Windows程序,Visual C++或Visual Studio是必须的,恩,这里都给你总结好了,拿去吧:VC/MFC开发必备Visual C++.Visual Studio.MSDN等下载汇总,甭客气~  啊?还没有开始学C++?那你先学习C++语言基础吧,C/C++语言基础学习资料及视频教程请看这里. 史无前例的网络最全最强C/C++资料索引: C/C++编程语言学习资料尽收眼底 电子书+视频教程 VC++/MFC(VC6)开发技术精品学习资料下载

大数据引发混合云井喷,了解四大场景与三大关键技术

进入2018年,我国大数据应用产业正在迎来爆发式增长的一年.作为第五次进入政府工作报告的关键词,大数据已经从国家战略高度到产业发展规划再到具体的发展行动,形成了系统布局.全面扩散.整体爆发之势.2017年底,在"大数据是信息化发展新阶段"的论断下,作为底层技术平台的混合云即将在2018年迎来井喷式发展. 赛迪顾问在"2018中国IT市场年会"上预测,混合云.Docker等技术在2018年将进入规模化部署期.而混合云技术的灵活性可极大提高工作负载,很多大型企业希望私有

聊聊推送的架构及关键技术实现

推送是在日常终端使用场景中经常碰到,特别是移动互联网普及之后,手机终端成为了消息推送的主战场,例如生活服务类的优惠券推送,咨询类的新闻推送,电商类的购物推送等等,在业务用户触达上起到了至关重要的作用,那我们今天就来揭开一下推送这个隐藏在业务背景之下的技术实现 系统架构及模块介绍 这是一个比较完整的推送业务架构图,分为三个部分:业务层.通道层和客户端常驻服务,一般来说客户端常驻服务和通道层维持一个长连接通道实现数据的双向传递,而业务层实现的是基于推送业务形态的展示,例如推送的定时任务推送,接口推送

Java Hotspot G1 GC的一些关键技术

G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生.在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248).在官网中,是这样描述G1的: The Garbage-First (G1) collector is a server-style garbage collector, targeted for