MFC笔记

原创 2013年12月05日 11:43:55

1、队列消息与非队列消息

      Windows为当前运行的每个Windows程序维护一个“队列消息”。在消息循环过程中,队列消息被“发送”给消息队列,而非队列消息则“发送”给窗口过程。在消息循环中,队列消息被重新传回并分配给窗口过程, 非队列消息在Windows调用窗口时直接传送给窗口过程。有些消息既可以是作为队列消息也可以作为非队列消息,看发给谁了。

2、消息寄送和消息发送

     (1)消息寄送

       寄送一个消息时,把消息发送到拥有那个窗口的应用程序的消息队列中。当应用发现自己有空闲时,就搜索消息队列,并在消息队列中处理消息,即从消息队列中删除它们,并将它们发送到指定的窗口。寄送消息用PostMessage()。

      (2)发送消息

        发送一个消息时,消息不进入目标窗口的消息队列,本质上与直接调用窗口处理过程一样,通信时即时的。发送消息使用SendMessage()

3、GetTextMetrics()和GetTextExtent()

     GetTextMetrics()获得指定字体的尺寸
     GetTextExtent()获得是指定字符串的尺寸

4、路径层功能演示

       CString str ;
str = "dkjfffsdddddddddddddddd" ;
pDC->TextOutW(50 , 50 , str); 
CSize sz = pDC->GetTextExtent(str) ;


str.LoadStringW(IDS_STRWEI) ;
pDC->TextOutW(0 , 200 , str) ;


pDC->BeginPath();
pDC->Rectangle(50 , 50 , 50 + sz.cx , 50 + sz.cy) ;
pDC->EndPath() ;


pDC->SelectClipPath(RGN_DIFF) ;
for(int i = 0 ; i < 300 ; i += 10)
{
pDC->MoveTo(0 , i) ;
pDC->LineTo(300 , i) ;


pDC->MoveTo(i , 0) ;
pDC->LineTo(i , 300) ;
}

5、MFC中对一个菜单项的响应顺序

    先是View类,再是Doc类,再是MainFrame类,最后是App类

6、消息分类

  (1)标准消息
    除WM_COMMAND之外,所有WM_开头的消息。
    从CWnd派生的类,都可以接受到这类消息
  (2)命令消息
    来自菜单、加速键或工具栏按钮的消息。
    这类消息都以WM_COMMAND呈现,在MFC中,通过
    菜单项的标识(ID)来区分不同的命令消息:在SDK中
    通过消息的wParam参数识别。
    从CCmdTarget派生的类,都可以接收到这类消息。
  (3)通知消息
    由控制产生的消息,例如,按钮的单击,列表框的选择等
    产生此类消息,为的 是向父窗口(通常是对话框)通知事件的发生。
    这类消息也是以WM_COMMAND形式呈现。
    从CCmdTarget派生的类,都可以接收这类消息。

7、VS2012中添加自定义消息通过类向导方便些,但是需要自定义用户消息ID

《MFC游戏开发》笔记三 游戏贴图与透明特效的实现

本系列文章由七十一雾央编写,转载请注明出处。 http://blog.csdn.net/u011371356/article/details/9313239 作者:七十一雾央 新浪微博:h...
  • lsybryant
  • lsybryant
  • 2014年09月08日 13:46
  • 1253

《MFC游戏开发》笔记五 定时器和简单动画

分类: 【C/C++】游戏开发2013-07-15 15:10 6752人阅读 评论(33) 收藏 举报 MFC游戏开发C++定时器 本系列文章由七十一雾央编写,转载请注明出处...
  • Sayesan
  • Sayesan
  • 2015年08月02日 21:20
  • 1405

我的大学--孙鑫MFC笔记教程

孙鑫MFC笔记教程(1)--Windows程序的内部运行原理   源文档 http://blog.csdn.net/liufei_learning/archive/2010/09/02/5859...
  • liufei_learning
  • liufei_learning
  • 2011年10月10日 11:18
  • 5667

MFC 实现俄罗斯方块三

3> 控制    控制程序比控制我自己 的意识要容易多了. 响应键盘的 上下左右键就万事大吉    enum {TRANSFORM = 0,DOWN = 2,LEFT = -1,RIGHT = 1,F...
  • qiuchengw
  • qiuchengw
  • 2008年12月05日 14:29
  • 3348

《深入浅出MFC》笔记(一)

看第一章的第一个例子时,和很多初学者一样,我也想知道如何把可执行文件的默认的图标:改成自己需要的,例如这样:首先来看看资源文件中到底是怎么定义的:IDI_CH_1                I...
  • phinecos
  • phinecos
  • 2008年01月17日 22:52
  • 341

小鑫的投篮

小鑫的投篮 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 为了追随偶像科比,小鑫苦心练习投篮。小鑫投篮得分的方...
  • guoqingshuang
  • guoqingshuang
  • 2015年11月24日 22:04
  • 113

《MFC游戏开发》笔记一 系列简介

分类: 【C/C++】游戏开发2013-07-11 12:05 13084人阅读 评论(117) 收藏 举报 游戏开发MFC2DARPGC++ 本系列文章由七十一雾央编写,转载请注...
  • Sayesan
  • Sayesan
  • 2015年08月02日 21:15
  • 3437

简单而完整:MFC骨干程序(深入浅出MFC之读书笔记)

Document/VIew是MFC的灵魂。CDocument可以内嵌其他对象(用来处理基本数据类型如链表、数组等等)。有关档案读写的操作在CDocument的Serialize函数中进行,有关画面显示...
  • xringm
  • xringm
  • 2016年03月29日 13:21
  • 818

MFC之“数字时钟制作”笔记(一)

替换原始图标:                  左键I
  • chunlanse2014
  • chunlanse2014
  • 2014年11月04日 17:14
  • 741

[每日一学]MFC学习笔记——Hello World

简介   MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一...
  • kingsollyu
  • kingsollyu
  • 2012年10月23日 21:20
  • 7496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC笔记
举报原因:
原因补充:

(最多只允许输入30个字)