开发者社区> double2li> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

IE中ocx控件的无模式对话框不接收方向键等键盘消息的问题的解决办法

简介: 在ocx控件中如果含有无模式对话框,那么当ocx在ie中显示时,往往接收不到 诸如tab,方向键和退格键。所有这些消息都被IE容器给截取了,对于这个问题,ms给出了解决方法: 首先:   int CMyActiveXCtrl::OnCreate(LPCREATESTRUCT lpCreateStru...
+关注继续查看
在ocx控件中如果含有无模式对话框,那么当ocx在ie中显示时,往往接收不到
诸如tab,方向键和退格键。所有这些消息都被IE容器给截取了,对于这个问题,ms给出了解决方法:
首先:
  int CMyActiveXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
   {
      if (COleControl::OnCreate(lpCreateStruct) == -1)
         return -1;
      OnActivateInPlace (TRUE, NULL); // == UI-Activate the control
      return 0;
   }
 激活控件,以便能接收键盘消息。
其次 跟踪转发消息
  // trap keys and forward on to the control
   BOOL CMyActiveXCtrl::PreTranslateMessage(MSG* pMsg)
   {
      switch (pMsg->message)
      {
         case WM_KEYDOWN:
         case WM_KEYUP:
            switch (pMsg->wParam)
            {
               case VK_UP:
               case VK_DOWN:
               case VK_LEFT:
               case VK_RIGHT:
               case VK_HOME:
               case VK_END:
               case VK_TAB:
                 ::SendMessage (pMsg->hWnd, pMsg->message, pMsg->wParam, pMsg->lParam);
                  // Windowless controls won't be able to call SendMessage.
                  // Instead, just respond to the message here.
                  return TRUE;
            }
            break;
      }
      return COleControl::PreTranslateMessage(pMsg);
   }
注意用send而不要用post

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇》电子版地址
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇
8 0
【活动已结束】深圳 x 杭州|中间件开发者沙龙正在报名中
主题为“始于架构,精于治理”的中间件开发者沙龙,将于 9 月 24 日(周六)下午在深圳和杭州两地同时举办,城市不同、议题不同,欢迎报名参加,来现场和分享嘉宾进行交流。
41 0
活动延期!阿里云企业AIoT技术与解决方案沙龙【深圳站】阿里云开发者 DevUP 沙龙
​阿里云智能IoT致力于打造融合AI、云边端一体和连接平台的物联网基础设施,帮助企业快速便捷应用物联网技术,实现在数字经济时代的竞争力升级。本次活动将领先的云端一体化平台的构建,到高效、低成本的硬件接入、应用构建的一站式工具赋能,全面解读阿里云AIoT技术与解决方案,帮助企业一键直通AIoT。
540 0
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与Swoole内核
摘要:在阿里云PHP技术沙龙专场中,阿里云邀请到php-nsq作者,pecl、Swoole开发组成员吴振宇分享了Swoole进程模型的原理与Swoole协程实现的原理。并结合具体开发案例讲解了Swoole在网络编程中的应用。
1726 0
关于网站出现 Error establishing a database connection 的解决办法
最近网站经常出现这个Error establishing a database connection ,真的是醉了,网上的解决办法就是重启数据库,或者开启configuration.php中的 true 【 define('WP_DEBUG', false);】,然后看到全部的提示,就是这个烦人的Error establishing a database connection,真的是醉了,下面讲讲我的解决办法。
24132 0
【转发】未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。
http://www.cnblogs.com/joey0210/archive/2012/09/29/2708420.html   上一篇文章说到了DLL引用问题,主要是说的程序中如果使用过了反射,则反射创建对象的dll必须放在web应用程序的bin目录里。
1242 0
+关注
double2li
一个在IT行业摸爬滚打的老司机
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载