最近使用ATL创建了一个复合控件,想在其上面相应Delete的键盘消息,但发现直接响应WM_KEYDOWN消息竟然没反应,事情是这样的:

1.起初我直接添加消息WM_KEYDOWN的响应函数,键盘按下,此函数不响应。

2.无奈我又使用preTranslateMessage函数来拦截键盘消息,但只有少部分按键(如功能键、空格键)可以响应。

3.随之我觉得使用钩子一定可以,但效果还是没有出来,钩子没有响应Delete按键的消息....

苦思冥想,,,不知道Wnd中发生了什么事情,使得ActiveX中WM_KEYDOWN没法响应。

4.后来我用了一个最土的方法,土炮....

我认为如果focus在按钮或编辑框上,窗口一定会响应WM_KEYDOWN消息,抱着试一试的方法,在控件上添加了一个按钮,并在初始化窗口的时候对其MoveToWindow(0,0,0,0)让它看不见,并使用SetFocus对其进行focus,要确保你想要相应键盘消息的时候该按钮处于focus状态,简单的你可以在OnPaint函数最后对其SetFocus,然后用钩子捕获键盘消息,呵呵,问题解决了。

5.在在在后来我发现可以使用SetWindowLong来改变窗口过程,我想这下可以响应键盘消息了吧,没想到奇迹还是没有出现。

如果哪位大师看到此文,并理解为什么ActiveX不能直接响应WM_KEYDOWN消息的请指教,谢谢!

ActiveX控件键盘消息无法响应 ATL COM相关推荐

  1. 使用ATL创建简单ActiveX控件(一) —— 创建ATL项目

    创建过程以VS2010为例,分三篇(创建ATL项目.添加方法/属性和枚举.添加连接点)演示.本篇演示创建ATL项目. 传送门: <使用ATL创建简单ActiveX控件(二) -- 添加方法/属性 ...

  2. VS2008 在IE8中 调试 ActiveX控件 无法进入断点的解决方法 设置VS2008和IE8 调试ATL MFC ActiveX控件

    VS2008 在IE8中 调试 ActiveX控件 无法进入断点的解决方法 设置VS2008和IE8 调试ATL MFC ActiveX控件 参考文章: (1)VS2008 在IE8中 调试 Acti ...

  3. C++基于ATL工程编写ActiveX控件

    开发环境:VS2010 开发工程:C++ATL项目 开发目的:创建ActiveX实现js调用 步骤: 1.      创建一个ATL工程 应用程序类型选择动态链接库(DLL),勾选支持COM+1.0, ...

  4. 基于MFC的ActiveX控件开发

    转自:http://www.cnblogs.com/lidabo/archive/2012/12/04/2800921.html ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件, ...

  5. 在 .NET Compact Framework 2.0 中宿主 ActiveX 控件

    适用于: ActiveX Microsoft .NET Compact Framework 版本 2.0 摘要:了解如何在使用 .NET Compact 的应用程序中宿主 ActiveX 控件.本文提 ...

  6. 【转】激活 ActiveX 控件

    用户无法直接与 APPLET.EMBED 或 OBJECT 元素加载的 Microsoft ActiveX 控件交互. 用户激活这些控件的用户界面后才可以与这些控件交互. 本主题介绍了 Microso ...

  7. VC ActiveX 控件 开发总结

    VC 制作ActiveX 控件(OCX) http://ileson.iteye.com/blog/1002910 1.vc6下建立一下activeX工程     详见http://hi.baidu. ...

  8. 使用MFC开发ActiveX控件

    摘要: 本文对COM组件中的ActiveX控件的MFC开发方法进行了介绍,讲述了用户自定义和库存属性.方法以及事件的添加方法和属性页的制作过程.使读者能够掌握基本的MFC ActiveX开发方法. 前 ...

  9. 以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件(经经经经经典)

    以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件 发布日期 : 12/2/2004| 更新日期 : 12/2/2004 Mark Bukovec Empir ...

最新文章

  1. 蓝桥杯练习系统习题-历年真题解析1(完整版)
  2. 频谱分析:基于python画出时域频域波形
  3. 小型项目服务器要多少,小型服务器需要什么配置
  4. 用了这个方法,我下载GitHub项目速度达5MB/s!
  5. MySQL索引知识点
  6. 在Spring Boot中配置web app
  7. 基于VHDL的RISC microprocessor设计
  8. c++基础学习(11)--(模板、预处理器、信号处理)
  9. CF1041E Tree Reconstruction_构造_思维题
  10. 月薪过万的岗位名单,大家久等了!
  11. 在chinapub上搜“搜索引擎”,按照销量排序《搜索引擎零距离》居然是第一
  12. CAD 卸载工具,完美彻底卸载清除干净cad各种残留注册表和文件
  13. 子网掩码掩码计算器_Javascript加载掩码
  14. 盘点两个神器,快速告别垃圾短信邮件
  15. MAC 外接键盘卡顿处理
  16. win10系统进行电脑分盘
  17. c语言 约分最简分式
  18. 特征级融合_自动驾驶系统入门(七)- 多传感器信息融合(MSIF)
  19. 7-6 愿天下有情人都是失散多年的兄妹(25 分)
  20. Linux 使用docker搭建MySQL服务的一些细节问题

热门文章

  1. 2021年化工自动化控制仪表考试题及化工自动化控制仪表考试总结
  2. 对著名快递公司的一次艰难的oracle注入
  3. 使用matlab生成高斯滤波模板_高斯滤波matlab及FPGA实现
  4. 软实力:中国十大调查研究咨询公司排名信息情况
  5. Codeforces 1050D Three Religions (dp+序列自动机)
  6. 第二季度有望实行取消手机用户话费的有效期
  7. Activity跳转的几种方式
  8. 《经济学人 —— 人工智能专题报告》
  9. 纯css制作三级下拉菜单
  10. 深入理解图优化与g2o:g2o篇中g2o版本更新引起的错误修改