MFC入门
1.底层窗口实现-WinMain入口函数
1.1 sdk和api
Windows应用程序api函数是通过c语言实现的,所有主要的Windows函数都在Windows.h头文件中进行了声明
1.2 窗口和句柄
一个Windows 应用程序至少要有一个窗口,称为主窗口。
窗口是屏幕上的一块矩形区域,是Windows应用程序与用户交换的接口。利用窗口可以接受用户的输入、以及显示输出。
在Windows应用程序中,窗口是通过窗口句柄HWND来标识的,我们要对某个窗口进行操作,首先就要得到这个窗口的句柄。
1.3 消息与消息队列
Windows程序设计是一种完全不同于传统的dos方式,他是事件驱动方式的程序设计模式。每个Windows应用程序开始执行后,系统都会为该程序创建一个消息队列,这个消息队列用来存放该程序创建的窗口信息。应用程序通过一个消息循环不断地从消息队列中去除消息,并进行响应。在这个处理过程中,操作系统也会给应用程序发送消息,所谓的发送消息 实际上市操作系统调用程序中一个专门负责处理消息的函数,这个函数称为窗口过程(回调函数)。
1.4 WinMain函数
WinMain是Windows程序的入口函数,与dos程序的入口点函数main的作用相同。
1.1编程模型
1.WinMain函数的定义
2.创建一个窗口
3.进行消息循环
4.编写窗口过程函数
2. 底层窗口实现-创建窗口的前五步
3.底层窗口实现-窗口处理过程
3.1整体流程
4.编写一个MFC程序
5.程序执行的流程
5.1 MFC创建窗口
6.消息映射机制
消息映射机制是一个将消息和成员函数相互关联的表。
比如,框架窗口接到一个鼠标左击消息,MFC将搜索该窗口的消息映射机制,如果存在一个处理WM_LBUTTONDOWN消息的处理机制,然后就调用OnLButtonDown。
下面是将消息映射添加到一个类中所做的全部工作:
1.在所操作类中,声明消息映射宏;
2.通过放置标识消息的宏来执行消息映射,相应的类将在对BEGIN_MESSAGE_MAP和END_MESSAGE_MAP的调用之间处理消息
3.对应的消息处理函数分别在类中声明,类外定义
6.1 消息映射具体实现
1.声明宏写到 .h中
2.分界宏 写到 .cpp中
3. 找消息宏 写到分界宏 中间
4. 把函数原型声明写到 .h中
5. 函数的实现写到.cpp中
6. 鼠标、键盘、绘图
7.字符集
英文 一个字符对应一个字节 多字节
中文 一个字符对应多个字节 宽字节 utf-8 3个字节,gbk 2个字节
TEXT是由自适应编码的转换
TCHAR 自适应编码的转换
MessageBox(L"aaa");