查寻/替换对话框 为什么要用到消息映射
查找/替换对话框 为什么要用到消息映射?
Step1【消息注册】:新建一个全局的常量WM_FINDREPLACEMESSAGE,并利用RegisterWindowMessage()进行关联,即static UINT WM_FINDREPLACEMESSAGE = RegisterWindowMessage(FINDMSGSTRING);这样对查找替换对话框进行操作时,消息队列中便会有了WM_FINDREPLACEMESSAGE消息了,这样我们可以建立对应的消息响应函数,对用户对查找替换对话框的操作进行响应。
Step2【消息映射】:利用ON_REGISTERED_MESSAGE(WM_FINDREPLACEMESSAGE, OnFindReplace)把WM_FINDREPLACEMESSAGE映射到OnFindReplace()函数中,建议将消息响应函数作为主对话框的方法。该函数的函数头为l:long CFind_and_replaceDlg::OnFindReplace(WPARAM wParam, LPARAM lParam),然后在该函数中添加处理用户操作的代码。
为什么要这两步?
------解决方案--------------------
不注册事先把消息映射写好也是可以的。
------解决方案--------------------
ON_COMMAND 工具栏的消息映射
ON_MESSAGE 消息映射
写在BEGIN_MESSAGE_MAP(XXXXXView, CView)后面的那部分
Step1【消息注册】:新建一个全局的常量WM_FINDREPLACEMESSAGE,并利用RegisterWindowMessage()进行关联,即static UINT WM_FINDREPLACEMESSAGE = RegisterWindowMessage(FINDMSGSTRING);这样对查找替换对话框进行操作时,消息队列中便会有了WM_FINDREPLACEMESSAGE消息了,这样我们可以建立对应的消息响应函数,对用户对查找替换对话框的操作进行响应。
Step2【消息映射】:利用ON_REGISTERED_MESSAGE(WM_FINDREPLACEMESSAGE, OnFindReplace)把WM_FINDREPLACEMESSAGE映射到OnFindReplace()函数中,建议将消息响应函数作为主对话框的方法。该函数的函数头为l:long CFind_and_replaceDlg::OnFindReplace(WPARAM wParam, LPARAM lParam),然后在该函数中添加处理用户操作的代码。
为什么要这两步?
对话框
------解决方案--------------------
不注册事先把消息映射写好也是可以的。
------解决方案--------------------
ON_COMMAND 工具栏的消息映射
ON_MESSAGE 消息映射
写在BEGIN_MESSAGE_MAP(XXXXXView, CView)后面的那部分