MFC第一课——MFC简介
来源:互联网 发布:程序员接活网站 编辑:程序博客网 时间:2024/06/09 16:14
最近开始研究MFC,教材是《深入浅出MFC》(第二版),现记录下学习过程中的心得体会,算是对自己知识的总结,也希望能给他人以帮助~
第一课
1.缩略词解释
MFC:这是一个建立在Windows API之上的C++类库
API:应用程序接口
SDK:软件开发工具(现凡以windows raw API撰写的程序我们通常也称为SDK程序)
OWL:这也是一个具备Application Framework架势的C++类库
2.知识点
1)"动态链接"是在执行时期才链上的。(.exe、.dll、.fon、.mod、.drv、.ocx都是所谓的动态链接函数库)
2)对应用程序获得的各种"输入"进行分类,可以分为①由硬件装置产生的消息,放在系统队列中;②由windows系统或其它windows程序传送过来的消息,放在程序队列中。
3)main是C程序的进入点,WinMain则是windows程序的进入点。
WinMain的调用流程:shell侦测到欲执行一个Windows程序->调用加载器->调用C startup code->调用WinMain->开始执行程序
(WinMain的四个参数由操作系统传递进来)
4)窗口的注册与创建:先是利用API函数RegisterClass(注册窗口类)设定属性,再利用API函数CreateWindow创建窗口(只创建,不显示,ShowWindow才显示窗口)。
RegisterClass被封装在InitApplication函数之中,该函数只用第一个实例才会进入,是否是第一实例由WinMain的参数hPrevInstance判断;CreateWindow封装在InitInstance函数之中,该函数任何实例都会进入。
5)消息循环:
while(GetMessage(&msg,...)){
TranslateMessage(&msg); //转换键盘消息
DispatchMessage(&msg); //分派消息
}
6)call back函数是指程序中被Windows系统调用的函数
7)窗口函数:无论什么消息,都必须被处理,所以switch/case指令中default:处必须调用DefWindowProc。这是Windows内部默认的消息处理函数。
8)消息映射Message Map
struct MSGMAD_ENTRY _messageEntries[] //消息与处理例程的对照表格
struct MSGMAD_ENTRY _commandEntries[] //Command-ID与处理例程之对照表格
9)对话框
两类:①使父窗口无效,直到对话框结束,称为modal②与父窗口共同运行,称为modeless
为做出对话框,程序员必须准备两样东西:①对话框模板(dialog template)②对话框函数(dialog procedure)
Modal对话框的激活与结束,靠的是DialogBox和EndDialog两个API函数。
10)模块定义文件.DEF
将模块名称、程序段和数据段的内存特性、模块堆(heap)大小、堆栈(stack)大小、所有call back函数名称等等登记下来 。
- MFC第一课——MFC简介
- MFC学习-第一课 MFC运行机制
- MFC简介
- MFC 简介
- MFC简介
- MFC简介
- MFC简介
- mfc简介
- 学习MFC第二天——第一个Windows程序
- C++笔记——第一个MFC程序
- VC++ MFC 多媒体编程第一课
- 浅谈MFC应用前景,第一课
- 第一个MFC程序
- 第一个mfc
- 第一讲 MFC概述
- 第一个MFC程序
- 第一个MFC程序!!!
- 多线程编程学习2——MFC与多线程简介
- 深入浅出URL编码
- 无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本。解决方案
- javascript中日期比较
- [C++ rudiment]如何生成自己的静态库(lib)文件 (转)
- Checker Challenge
- MFC第一课——MFC简介
- 修改SAP Standard System
- 第六章 通用算法
- scrollView的fillviewport
- JAVA 三大IDE
- C#日期格式化
- 新的一年,一定要坚持每天都学点linux开发
- uboot之u盘启动kernel
- SCWCD考试,Fail的体验。