mfc采用什么来处理信息,mfc消息循环

  mfc采用什么来处理信息,mfc消息循环

  MFC应用程序1中的消息处理顺序。AfxWndProc()这个函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc。

  2.AfxCallWndProc()这个函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数。

  3.WindowProc()这个函数负责向OnWndMsg()函数发送消息。如果不处理,则调用DefWindowProc()函数。

  4.OnWndMsg()该函数的作用是首先按字节对消息进行排序,对于WM_COMMAND消息调用OnCommand()消息响应函数,对于WM_NOTIFY消息调用OnNotify()消息响应函数。任何错过的消息都将是窗口消息。OnWndMsg()函数搜索该类的消息图像,以找到可以处理任何窗口消息的处理程序。如果OnWndMsg()函数找不到这样的处理函数,消息将返回给WindowProc()函数,后者将消息发送给DefWindowProc()函数。

  5.OnCommand()该函数检查这是否是一个控制通知(lParam参数不为空,如果lParam参数为空,则表示该消息不是一个控制通知)。如果是,OnCommand()函数将尝试将消息映射到制造通知的控件;如果不是控件通知(或者控件拒绝映射的消息),OnCommand()将调用OnCmdMsg()函数。

  6.oncmdsg()根据所接收消息的类别,oncmdsg()函数可能会在一个称为命令路由的过程中传递命令消息和控制通知。例如,如果拥有窗口的类是一个框架类,那么命令和通知消息也被传递给视图和文档类,并且为该类找到一个消息处理函数。

  MFC应用程序创建窗口的过程

  1.PreCreateWindow()这个函数是一个重载函数,在这个函数中你可以改变创建参数(你可以设置窗口样式等。)在创建窗口之前。

  2.PreSubclassWindow()这也是一个重载函数,允许窗口先被子类化。

  3.OnGetMinMaxInfo()这个函数是一个消息响应函数,它响应WM_GETMINMAXINFO消息。允许设置窗口的最大或最小尺寸。

  4.OnNcCreate()这个函数也是一个消息响应函数。作为对WM_NCCREATE消息的响应,它发送一个消息告诉窗口的客户区,它将很快被创建。

  5.OnNcCalcSize()这个函数也是一个消息响应函数,响应WM_NCCALCSIZE消息,它的作用是允许窗口客户区大小改变。

  6.OnCreate()这个函数也是一个消息响应函数。作为对WM_CREATE消息的响应,它发送一条消息告诉我们一个窗口已经被创建了。

  7.OnSize()这个函数也是一个消息响应函数。作为对WM_SIZE消息的响应,发送此消息以告知窗口大小已更改。

  8.OnMove()消息响应函数,响应WM_MOVE消息。发送此消息表示车窗正在移动。

  9.OnChildNotify()这个函数被重载并作为消息映射的一部分被调用,告诉父窗口刚刚创建了一个窗口。

  MFC应用程序关闭窗口的顺序(无模式窗口)

  1.1号。OnClose()消息响应函数响应窗口的WM_CLOSE消息,并在单击关闭按钮时发送该消息。

  2.OnDestroy()消息响应函数,响应一个窗口的WM_DESTROY消息,当一个窗口将要被销毁时发送这个消息。

  3.三号。OnNcDestroy()消息响应函数响应窗口的WM_NCDESTROY消息,并在窗口被销毁时发送该消息。

  4.四号。PostNcDestroy()重载函数,作为处理OnNcDestroy()函数的最后一个动作,由CWnd调用。

  MFC应用程序中打开模式对话框的函数调用序列

  1.重载domodal()函数和DoModal()成员函数。

  2.PreSubclassWindow()重载该函数,允许首先对窗口进行子分类。

  3.三号。OnCreate()消息响应函数响应WM_CREATE消息,并发送该消息以告知窗口已被创建。

  4.OnSize()消息响应函数,它响应WM_SIZE消息并发送此消息以告知窗口大小的变化。

  5.五号。OnMove()消息响应函数响应WM_MOVE消息,发送这个消息告诉窗口它正在移动。

  6.六号。OnSetFont()消息响应函数响应WM_SETFONT消息,并发送此消息以允许对话框中控件的字体被更改。

  7.OnnitDialog()消息响应函数,它响应WM_INITDIALOG消息,并发送此消息以允许对话框中的控件被初始化或创建新的控件。

  8.八号。OnShowWindow()消息响应函数响应WM_SHOWWINDOW消息,由ShowWindow()函数调用。

  9.OnCtlColor()消息响应函数,响应WM_CTLCOLOR消息,由父窗口发送,改变对话框或对话框上控件的颜色。

  10.OnChildNotify()重载函数,作为WM_CTLCOLOR消息的结果发送。

  MFC应用程序中关闭模式对话框的顺序

  1.1号。OnClose()消息响应函数响应WM_CLOSE消息,当单击“关闭”按钮时调用该函数。

  2.OnKillFocus()消息响应函数,响应WM_KILLFOCUS消息,在窗口即将失去键盘输入焦点之前发送。

  3.OnDestroy()消息响应函数,响应WM_DESTROY消息,在窗口即将被销毁时发送。

  4.四号。OnNcDestroy()消息响应函数响应WM_NCDESTROY消息,在窗口销毁后发送。

  5.PostNcDestroy()重载函数,CWnd调用它作为处理OnNcDestroy()函数的最后一个动作。

  打开无模式对话框的顺序

  1.PreSubclassWindow()重载该函数,允许用户首先对窗口进行子分类。

  2.2号。OnCreate()消息响应函数响应WM_CREATE消息,并发送该消息以告知窗口已被创建。

  3.OnSize()消息响应函数,它响应WM_SIZE消息并发送此消息以告知窗口大小的变化。

  4.四号。OnMove()消息响应函数响应WM_MOVE消息,发送这个消息告诉窗口它正在移动。

  5.五号。OnSetFont()消息响应函数响应WM_SETFONT消息,并发送此消息以允许对话框中控件的字体被更改。

  这些都是按照给定的顺序执行的!

  只有清楚的了解应用的执行顺序,才能知道什么时候执行什么,什么时候写代码在哪里处理什么!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: