自定义了一个控件

class CHtmlEditCtrlEx : public CHtmlEditCtrl

 

想在这个控件接收到Ctrl+V键盘消息的时候,向该控件所在的窗口发送一个自定义消息。具体实现方法如下:

  1. 在该控件的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);

 

}

 

  1. 在控件所在窗口的.h文件中定义消息处理函数。

  2. 在控件所在的窗口类的.cpp文件中,在文件的头部定义这个消息。

  3. 在消息映射中映射这个消息。

  4. 然后实现这个消息处理函数:

LRESULT CDialog2::OnHenryPaste(WPARAM wParam, LPARAM lParam)

{

    // do something useful

    int MyReturnValue = 0;

 

    return (LRESULT) MyReturnValue;

};

 

 

这样当自定义控件接收到CTRL+V的键盘消息时,父窗口的处理函数就能被执行了。

MFC自定义控件如何向父窗口发送自定义消息的更多相关文章

  1. SendMessage发送自定义消息及消息响应

    控件向父窗体发送自定义消息,父窗体定义处理此消息的函数   效果描述: 指定哪个类添加自定义消息:(当然这个类必须是CmdTarget的子类,不然不能处理消息) 添加消息 实现消息函数:(wParam ...

  2. SendMessage发送自定义消息及消息响应(VC版)

    控件向父窗体发送自定义消息,父窗体定义处理此消息的函数  程序源代码(整个工程)下载:http://download.csdn.net/detail/qq2399431200/6274793 效果描述 ...

  3. MFC发送自定义消息-PostMessage和SendMessage

    PostMessage:把消息投放到线程的消息队列,不能消息被处理就立即返回SendMessage:消息被处理完后才返回 几种发送消息的写法:   ::PostMessage(GetSafeHwnd( ...

  4. MFC子窗口和父窗口

    转载声明: 本文转载自:http://www.cnblogs.com/BeyondTechnology/archive/2011/03/25/1995934.html 感谢BeyondTechnolo ...

  5. MFC子窗口和父窗口(SetParent,SetOwner)

    一.概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表.系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口.这个数据结构中有四个数据用来构建list, ...

  6. mfc窗口,父窗口parentwindow,所有者窗口ownerwindow 区别

    一. parent:创建者,owner:所有者 小玉的父母生下小玉,养到8岁,卖给贾府当丫头小玉的父母是parent,贾府是owner 二. 1.Pop-up窗口: 一个弹出窗口是必须具有WS_POP ...

  7. 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

    如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...

  8. MFC关闭子窗口 如何把父窗口也一起关闭

    在子窗口OnClose() 消息里添加: GetParent()->DestroyWindow();//子窗口关闭 父窗口也同样关闭

  9. 【转】vc中使用SendMessage正确发送自定义消息的方法--不错

    原文网址:http://zhoumf1214.blog.163.com/blog/static/5241940200910265532959/ 最近在用VC2008做开发,后来由于要用到消息的发送,而 ...

随机推荐

  1. 在Windows下通过netsh命令实现端口映射

    在Windows环境下,可以通过netsh命令实现简单快速的配置端口映射功能 1. 新增端口映射 netsh interface portproxy add v4tov4 listenport= co ...

  2. LightOJ 1366 - Pair of Touching Circles (统计矩形内外切圆对)

    1366 - Pair of Touching Circles   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limi ...

  3. Webpack 性能优化 (一)(使用别名做重定向)

    前言 Webpack 是 OneAPM 前端技术栈中非常重要的一部分.它非常好用,假设你还不了解它,建议你阅读这篇Webpack 入门指迷,在 OneAPM 我们用它完毕静态资源打包.ES6 代码的转 ...

  4. STM32 Seminar 2007 -- Timer

  5. FindWindow用法

    函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配.这个函数不查找子窗口.在查找时不区分大小写. 函数型:HWND FindWindow(LPCTSTR IpClassN ...

  6. gdb调试报错:Missing separate debuginfos, use: debuginfo-install glibc-XXX

    解决方案: 1.先修改“/etc/yum.repos.d/CentOS-Debuginfo.repo”文件的 enable=1: 2.使用 sudo yum install glibc 安装: 3.使 ...

  7. 机房收费系统——UML用例图

    用例图(Use Case Diagram)是由软件需求分析到终于实现的第一步,说明的是谁要使用系统,以及他们使用该系统能够做些什么,是九种图里面最为基础且很重要的一张图.     用例图包含3方面内容 ...

  8. delphi 结构体和TList的用法

    type  PRecord = ^TMyRec;  TMyRec = record    s: string[8];    i: integer;    d: double;end;var   MyL ...

  9. Why I Left the .NET Framework

    The .NET Framework was good. Really good. Until it wasn't. Why did I leave .NET? In short, it constr ...

  10. 移植Python3到TQ2440(一)

    平台 硬件:TQ2440  64MB内存 256MB NandFlash bootloader:U-Boot 2015.04 kernel:linux-4.9 Python: Python-3.6.0 ...