mfc中,消息名与对应的响应函数的名称,对应关系是谁定的呢?
比如选择一个 WM_CREATE 这个消息,就会生成一个名为 OnCreate()的一个响应函数,
我不明白,消息名与函数名的对应关系谁决定的,是mfc定死的吗?
在源代码中有这种对应关系的体现吗?
如果代码中没有,这种对应关系体现在哪里呢?
比如选择一个 WM_CREATE 这个消息,就会生成一个名为 OnCreate()的一个响应函数,
我不明白,消息名与函数名的对应关系谁决定的,是mfc定死的吗?
在源代码中有这种对应关系的体现吗?
如果代码中没有,这种对应关系体现在哪里呢?
MFC有一个消息映射表,接收到一个消息后,会到表中去查找对应的处理函数。具体你可以去看MFC消息映射机制,那可是MFC的一个很幽深的地方
只不过有些是VC给你定义好了的东西,就像WM_CREATE之类的
比如一个函数:OnCreate(),操作系统怎么会知道去处理 WM_CREATE 事件呢?
这里一定会有一个对应关系,这个对应关系mfc已经设定好了,但是我不知这个对应关系在哪里可以看到。
BEGIN_MESSAGE_MAP(CTestView, CView)
//{{AFX_MSG_MAP(CTestView)
ON_WM_CREATE()
ON_WM_LBUTTONDBLCLK()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP() ON_WM_CREATE()
ON_WM_LBUTTONDBLCLK()
ON_WM_DESTROY()
以上三行是增加响应函数后增加的,我知道这是三个宏,但是我不知这三个宏是如何起作用的,如果可以建立消息名与响应函数名之间的对应关系呢?
mfc里消息分为三种:标准消息,命令消息,控件消息
WM_CREATE()
WM_LBUTTONDBLCLK()
WM_DESTROY()
这都是标准消息,对应的是oncreate()这些默认的函数,这是MFC定好的。不太记得了。