最近因为要做一个项目所以必须要学习MFC,那么以下就是我觉得MFC里面非常重要的东西。
当然,都是入门级的...
1.操作系统把他所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用。
2.操作系统是靠消息机制将感知到的事件传递给应用程序的。操作系统将每个事件都包装成一个称为消息的结构体。
3.句柄是资源的标识,操作系统要管理和操作这些资源,都是通过句柄来来找到对应的资源。句柄分为图标句柄,光标句柄,窗口句柄...
4.以WM_开头的函数都是宏定义的即windows message
5. 在winmain函数(程序入口)函数调用之前,先进行构造函数,因为要先分配空间。
6.带AFX的函数是属于应用程序框架的函数,都是全局函数。
7.View类始终是覆盖在MainFrame类之上的。相当于两面墙,View总是挡在MainFrame这面墙前面,而操作永远实在前面这面墙上的。
8.(MFC的消息映射机制):首先要知道MFC在后台有一个句柄和对象指针的一个对照表。一旦有消息发生时,因为消息是和一个窗口相关的。就会通过句柄找到对应的c++对象的指针,将指针传给基类,然后基类通过消息循环,调用WindowProc函数来对消息进行处理。而WindowProc函数是个虚函数,所以当子类继承CWnd类的时候都会有WindowProc函数,它会通过消息种类去查找对应的消息映射。而在WindowProc中,真正处理消息的是OnWndMsg函数。OnWndMsg函数会进行一个判断,看该消息有没有对应的消息响应函数。判断方式是1.到c++头文件中看在DECLARE_MESSAGE_MAP之上有没有消息响应函数的声明。2.在源文件中BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间有没有宏。如果找到了消息响应函数,最终就会调用该函数,对消息进行处理。
9.MFC把所有与作图相关的操作放在了CDC类里面。
10.MFC常用RBG值
Colour Red Green Blue
黑色 0 0 0
白色 255 255 255
灰色 192 192 192
深灰色 128 128 128
红色 255 0 0
深红色 128 0 0
绿色 0 255 0
深绿色 0 128 0
蓝色 0 0 255
深蓝色 0 0 128
紫红色 255 0 255
深紫红 128 0 128
紫色 0 255 255
深紫 0 128 128
黄色 255 255 0
棕色 128 128 0
11.(--------引用他人的博客-------)关于DC和SelectObject()函数
以画画举例,画画的环境,就是DC。在画画的环境中,有哪些对象呢?画布,区域,颜料盒(调色板),字体,刷子,位图。
现在开始画画了,你拿起了一只笔。——在Windows环境里,这叫选择了一个画笔对象:使用SelectOBject函数。当然,如果你没带笔也没关系,Windows为你准备了几只画笔,你可以这样申请系统提供的缺省画笔:hPen = GetStockObject(WHITE_PEN);
如果你画着画着,觉得手中的笔用着不爽,可以换一只啊——依旧是SelectObject()换笔。
若是画完一部分大树,准备画蓝色的天空,当你画完天空后继续画另一部分大树你得需要把画笔的颜色换回原先画大树的颜色。——你需要用SelectObject(m_pOldPoint)选回原先的颜色。
当然,如果你走出了画室,别忘了把你的画笔清除掉,要不画室里全是笔啊,刷子啊,太乱了。——DeleteObject()