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

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

 

    1 在ocx的OnCreate()函数添加OnActivateInPlace (TRUE, NULL); // == UI-Activate the control

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

    2 在OnMouseActivate() 事件函数中添加OnActivateInPlace()函数,如下:

int CocxTestCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message)
{
 if (!m_bUIActive)
  OnActivateInPlace (TRUE, NULL); // == UI-Activate the control

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

 

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

展开阅读全文

没有更多推荐了,返回首页