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.OnCmdMsg()

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

  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()

  response函数响应WM_MOVE消息,该消息指示窗口正在移动。

  9.OnChildNotify()

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

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

  1.OnClose()

  消息函数响应窗口的WM_CLOSE消息,并在单击关闭按钮时发送该消息[Page]

  2.OnDestroy()

  response函数响应窗口的WM_DESTROY消息,并在窗口将被销毁时发送此消息。

  3.OnNcDestroy()

  response函数响应窗口的WM_NCDESTROY消息,并在窗口被销毁时发送该消息。

  4.PostNcDestroy()

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

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

  1.多模态()

  重载函数,重载DoModal()成员函数

  2.PreSubclassWindow()

  重载该函数,允许窗口首先被子类化。

  3.OnCreate()

  message函数响应WM_CREATE消息,并发送该消息以告知窗口已经创建。

  4.OnSize()

  response函数响应WM_SIZE消息,并发送该消息来告知窗口大小的变化。

  5.OnMove()

  response函数响应WM_MOVE消息,并发送该消息来告诉窗口它正在移动。

  6.OnSetFont()

  message函数响应WM_SETFONT消息,并发送此消息以允许对话框中控件的字体被更改。

  7.OnInitDialog()

  Message函数,它响应WM_INITDIALOG消息,并发送此消息以允许在对话框中初始化控件,或者创建一个新的控件。

  8.OnShowWindow()

  消息响应函数,响应WM_SHOWWINDOW消息,由SHOWWINDOW()函数调用。

  9.OnCtlColor()

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

  10.OnChildNotify()

  重载函数,作为WM_CTLCOLOR消息的结果发送

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

  1.OnClose()

  消息响应函数,响应WM_CLOSE消息,并在单击“关闭”按钮时调用。

  2.OnKillFocus()

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

  3.OnDestroy()

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

  4.OnNcDestroy()

  响应WM_NCDESTROY消息的消息函数,在窗口被销毁时发送。

  5.PostNcDestroy()

  重载该函数,CWnd调用该函数作为处理OnNcDestroy()函数的最后一个操作。

  打开无模式对话框的顺序

  1.PreSubclassWindow()

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

  2.OnCreate()

  作为对WM_CREATE消息的响应,response函数发送此消息,告知窗口已创建[Page]

  3.OnSize()

  response函数响应WM_SIZE消息,并发送该消息来告知窗口大小的变化。

  4.OnMove()

  response函数响应WM_MOVE消息,并发送该消息来告诉窗口它正在移动。

  5.OnSetFont()

  response函数响应WM_SETFONT消息,并发送此消息以允许对话框中控件的字体被更改。

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

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

  这只是我总结的一点经验,希望能对初学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.OnCmdMsg()

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

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

  1.PreCreateWindow()

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

  2.PreSubclassWindow()

  这也是一个重载函数,它允许窗口首先被子类化。

  3.OnGetMinMaxInfo()

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

  4.OnNcCreate()

  这个函数也是一个消息响应函数,它响应WM_NCCREATE消息,发送消息告诉窗口的客户区即将被创建[Page]

  5.OnNcCalcSize()

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

  6.OnCreate()

  该功能也是消息响应功能。作为对WM_CREATE消息的响应,它发送一条消息告诉我们一个窗口已经被创建了。

  7.OnSize()

  这个函数也是一个消息响应函数,它响应WM_SIZE消息并发送这个消息来告知窗口大小已经改变。

  8.OnMove()

  response函数响应WM_MOVE消息,该消息指示窗口正在移动。

  9.OnChildNotify()

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

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

  1.OnClose()

  response函数响应窗口的WM_CLOSE消息,并在单击CLOSE按钮时发送该消息。

  2.OnDestroy()

  response函数响应窗口的WM_DESTROY消息,并在窗口将被销毁时发送此消息。

  3.OnNcDestroy()

  response函数响应窗口的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()重载该函数并发送[Page]作为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消息,并发送此消息以允许对话框中控件的字体被更改。

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

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

  这只是我总结的一点经验,希望能对初学MFC的人有所帮助!

mfc采用什么来处理信息,用程序说明MFC的事件处理机制