MFC自定义控件如何向父窗口发送自定义消息
2018-01-14 09:13
471 查看
自定义了一个控件
想在这个控件接收到Ctrl+V键盘消息的时候,向该控件所在的窗口发送一个自定义消息。具体实现方法如下:
在该控件的PreTranslateMessage方法中定义自定义消息,然后将该消息发送给父窗口
在控件所在窗口的.h文件中定义消息处理函数。
在控件所在的窗口类的.cpp文件中,在文件的头部定义这个消息。
在消息映射中映射这个消息。
然后实现这个消息处理函数:
这样当自定义控件接收到CTRL+V的键盘消息时,父窗口的处理函数就能被执行了。
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 向指定窗口发送自定义消息
- MFC模态对话框和非模态对话框及副窗口调用主窗口控件 自定义消息发送
- MFC如何自定义消息与在线程中向主窗体控件发送数据
- MFC 如何获取各类窗口的句柄并用PostMessage发送消息
- MFC 向指定窗口发送自定义消息
- MFC总结(4)---MFC中如何使用子控件向父控件发送自定义消息
- MFC 向指定窗口发送自定义消息
- c++控制台(非窗口,非MFC框架)里线程如何通过自定义消息通信
- vc如何自定义消息与在线程中向主窗体控件发送数据
- VC/MFC中如何自定义消息
- MFC子父窗口发送消息
- MFC SendMessage或PostMessage发送自定义消息
- 在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用)
- MFC 自定义消息 给主窗口发消息
- 如何在MFC里写自己的自定义消息
- MFC使用SendMessage()发送自定义消息实现进程间通信
- 在MFC中如何自定义消息及相应事件(VC6.0及VS2005)
- 如何在MFC对话框之间自定义消息传递
- MFC中窗口收到WM_PAINT消息是如何处理的,什么情况下产生WM_PAINT消息