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:所有资源的总管:任何资源视图中的资源实际上都是通过这个句柄获取到的。
MFC六大关键技术的更多相关文章
- 深入浅出MFC——MFC六大关键技术仿真(二)
1. 仿真MFC目的:以MFC为例,学习application framework的内部运行.MFC六大关键技术: (1)MFC程序的初始化过程 (2)RTTI(Runtime Type Inform ...
- 剖析MFC六大关键技术(五六)--消息映射与命令传递
说到消息,在MFC中,“最熟悉的神秘”可算是消息映射,那是我们刚开始接触MFC时就要面对的东西.有过SDK编程经验的朋友转到MFC编程的时候,一下子觉得什么都变了样.特别是窗口消息及对消息的处理跟以前 ...
- 深入浅出MFC学习笔记 第三章 MFC六大关键技术之仿真
0:MFC类层次结构 1:MFC程序的初始化过程CWinApp::InitApplication()CMyWinApp::InitInstance()CMyFrameWnd::CMyFrameWnd( ...
- MFC六大核心机制之五、六:消息映射和命令传递
作为C++程序员,我们总是希望自己程序的所有代码都是自己写出来的,如果使用了其他的一些库,也总是千方百计想弄清楚其中的类和函数的原理,否则就会感觉不踏实.所以,我们对于在进行MFC视窗程序设计时经常要 ...
- MFC六大核心机制
MFC六大核心机制概述 我们选择了C++,主要是因为它够艺术.够自由,使用它我们可以实现各种想法,而MFC将多种可灵活使用的功能封装起来,我们岂能忍受这种“黑盒”操作?于是研究分析MFC的核心机制成为 ...
- VC++/MFC(VC6)开发技术精品学习资料下载汇总
工欲善其事,必先利其器,VC开发MFC Windows程序,Visual C++或Visual Studio是必须的,恩,这里都给你总结好了,拿去吧:VC/MFC开发必备Visual C++.Visu ...
- MFC六大核心机制之二:运行时类型识别(RTTI)
上一节讲的是MFC六大核心机制之一:MFC程序的初始化,本节继续讲解MFC六大核心机制之二:运行时类型识别(RTTI). typeid运算子 运行时类型识别(RTTI)即是程序执行过程中知道某个对象属 ...
- MFC六大核心机制之一:MFC程序的初始化
很多做软件开发的人都有一种对事情刨根问底的精神,例如我们一直在用的MFC,很方便,不用学太多原理性的知识就可以做出各种窗口程序,但喜欢钻研的朋友肯定想知道,到底微软帮我们做了些什么,让我们在它的框架下 ...
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
根据我的实践,在Windows平台下设计并实现一个C++插件系统,需要解决几个关键技术问题.下面我谈谈需要解决的几个关键技术问题以及我想到的简单的解决思路.由于我主要专注于Windows平台C++程序 ...
随机推荐
- (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
Github, Soundcloud, FogCreek, Stackoverflow, Foursquare,等公司通过elasticsearch提供搜索或大规模日志分析可视化等服务.博主近4个月搜 ...
- 百度api的使用
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- How do you make an awesome team?(来考验一下自己的英语能力吧)
How do you make an awesome team? I was talking to my awesome friend Amy Hanlon (who is a software en ...
- web浏览器上传超大文件插件
如今基于浏览器安装插件的时代已经过时,让人觉得比较low,基于非插件的文件上传大都有限制,给大家推荐一款插件,基于大文件切割原理上传的插件,解决大家的难题! 项目链接http://www.twinkl ...
- XJOI1571爱心蜗牛【树形动规】
爱心蜗牛 猫猫把嘴伸进池子里,正准备"吸"鱼吃,却听到门铃响了.猫猫擦了擦脸上的水,打开门一看,那人正是她的好朋友--川川.川川手里拿着一辆玩具汽车,对猫猫说:"这是我的 ...
- 【Electron】Electron开发入门
Electron简介: Electron提供了丰富的本地(操作系统)的API,使你能够使用纯JavaScript来创建桌面应用程序,并且跨平台(win,mac,linux等各种PC端平台).与其它各种 ...
- How To Use ggplot in ggplot2?
1.What is ggplot2 ggplot2基本要素 数据(Data)和映射(Mapping) 几何对象(Geometric) 标尺(Scale) 统计变换(Statistics) 坐标系统(C ...
- ios deprecated 警告消除 强迫症的选择
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" ...
- 1034. Head of a Gang
One way that the police finds the head of a gang is to check people's phone calls. If there is a pho ...
- jquery-ul-li实现分页功能 转载仅供交流
js文件代码: (function($){ $.fn.Pages = function(options){ var opts = $.extend({},$.fn.Pages.defaults, op ...