概述
自定义了一个控件
class CHtmlEditCtrlEx : public CHtmlEditCtrl |
想在这个控件接收到Ctrl+V键盘消息的时候,向该控件所在的窗口发送一个自定义消息。具体实现方法如下:
- 在该控件的PreTranslateMessage方法中定义自定义消息,然后将该消息发送给父窗口
BOOL CHtmlEditCtrlEx::PreTranslateMessage(MSG* pMsg) {
int WM_HENRYPASTE = RegisterWindowMessage(TEXT("HENRYPASTE"));
int aa = 0; if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case 'V': if( ::GetKeyState(VK_CONTROL) & 0x8000 ) { GetParent()->SendMessage(WM_HENRYPASTE, pMsg->wParam, pMsg->lParam);
} break; } }
return CHtmlEditCtrl::PreTranslateMessage(pMsg);
} |
-
在控件所在窗口的.h文件中定义消息处理函数。
-
在控件所在的窗口类的.cpp文件中,在文件的头部定义这个消息。
-
在消息映射中映射这个消息。
- 然后实现这个消息处理函数:
LRESULT CDialog2::OnHenryPaste(WPARAM wParam, LPARAM lParam) { // do something useful int MyReturnValue = 0;
return (LRESULT) MyReturnValue; }; |
这样当自定义控件接收到CTRL+V的键盘消息时,父窗口的处理函数就能被执行了。
最后
以上就是迅速帆布鞋为你收集整理的MFC自定义控件如何向父窗口发送自定义消息的全部内容,希望文章能够帮你解决MFC自定义控件如何向父窗口发送自定义消息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复