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
目录
相关文章
|
3月前
|
安全 Shell
关于双击桌面上的IE图标却显示“打开方式”对话框的解决办法
关于双击桌面上的IE图标却显示“打开方式”对话框的解决办法
|
JavaScript 前端开发
IE8的的文本模式怎么固定
IE8的的文本模式怎么固定
|
JavaScript 前端开发
关于 getBoundingClientRect 方法在360极速浏览器的 IE 兼容模式下获取 documentElement 宽度比在 IE 浏览器下面多 4px 的问题
关于 getBoundingClientRect 方法在360极速浏览器的 IE 兼容模式下获取 documentElement 宽度比在 IE 浏览器下面多 4px 的问题
93 0
关于 getBoundingClientRect 方法在360极速浏览器的 IE 兼容模式下获取 documentElement 宽度比在 IE 浏览器下面多 4px 的问题
|
Windows
Windows11 没了 IE 浏览器,教你如何在 Edge 中开启 IE 模式
微软 Win11 于 6 月末正式发布,首个预览版 WinBuild.160101.0800 也已推出。此前的 Win10 21H1 内置 Chromium 内核的新版 Edge 浏览器,但 IE 依旧保留了下来,而 Win11 彻底将 IE 移除。为了解决这一问题,最新的 Edge 91.0.864.64 正式版内置了 IE 模式,在访问特定网站时,可以开启这一模式来保证兼容性。
7923 0
Windows11 没了 IE 浏览器,教你如何在 Edge 中开启 IE 模式
|
Windows
Windows 技术篇-Internet Explorer浏览器启用方法,windows找不到ie浏览器解决办法
Windows 技术篇-Internet Explorer浏览器启用方法,windows找不到ie浏览器解决办法
165 0
Windows 技术篇-Internet Explorer浏览器启用方法,windows找不到ie浏览器解决办法
|
Web App开发 JavaScript 前端开发
|
Web App开发 前端开发 容器
IE6中的常见BUG与相应的解决办法
IE6中的常见BUG与相应的解决办法  IE6中的常见BUG与相应的解决办法   1、IE6双倍边距bug 当页面上的元素使用float浮动时,不管是向左还是向右浮动;只要该元素带有margin像素都会使该值乘以2,例如“margin-left:10px” 在IE6中,该值就会被解析为20px。
1010 0
|
Windows
IE8新建选项卡提示网页错误的解决办法
打开IE,新建一个页面报错,很影响心情   解决办法: 1、打开注册表 cmd –> regedit 2、找到HKEY_CLASSES_ROOT\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.
710 0
IE Developer Toolbar工具栏显示灰色无法使用的解决办法
在IE 8下面是提供了自带的Developer Toolbar,按F12可以调出,工具栏的菜单默认是灰色的。 对于IE 6和IE 7可以查看: 工具-> Internet 选项-> 程序-> 管理插件-> IE Developer Toolbar BHO -> Enable Sorry,我用的英文版,只能提供英文的抓图了。
655 0