ocx控件在网页中如何获得键盘事件

 

在网页中的ocx控件有时无法获得键盘事件,当网页中的ocx控件上有子窗口的时候,更是无法获得键盘事件,解决该问题的方法如下:

想让你的Activex捕捉到控制键,必须要让他成为整个屏幕Actice的. 在CxxxCtrl的OnCreate里面添加

OnActivateInPlace (TRUE, NULL); // == UI-Activate the control

因为IE不会自动激活首次加载的控件。

2 在OnMouseActivate方法中添加OnActivateInPlace   (TRUE,   NULL);   这样Activex就可以捕获到控制键了。紧接着要做的就是在PreTranslateMessage中判断消息,然后分发给需要的Cwnd。

int CxxxCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message)
{
::PostMessage(wnd , WM_KEYDOWN , 0 , 0);  //wnd为接受信息的窗口、
WM_KEYDOWN为发送的消息类型

return COleControl::OnMouseActivate(pDesktopWnd, nHitTest, message);
}

这样当网页一旦加载完成,ocx便自动获得了焦点。并且当鼠标在ocx的子窗口上点击,ocx也能获得键盘事件。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值