让CppWebBrowser响应回车健

王朝other·作者佚名  2008-06-01
宽屏版  字体: |||超大  

最近本人在研究CppWebBrowser的用法,发现这个控件最大的毛病就是不响应回车,即使用OleInitialize(NULL)来初始化也一样。经过在CSDN的一发查找,发现了Delphi的解决代码,先专成BCB的代码公布如下。

先声明一个私有变量:

IOleInPlaceActiveObject __RPC_FAR *FOleInPlaceActiveObject;

然后在主窗体添加一个ApplicationEvents控件,在它的OnMessage事件里天加入下代码:

void __fastcall TfmChildwin::ApplicationEvents1Message(tagMSG &Msg,

bool &Handled)

{

IOleInPlaceActiveObject __RPC_FAR *iOIPAO;

Idispatch __RPC_FAR *Dispatch;

if(CppWebBrowser==NULL) //CppWebBrowser就是窗体上的CppWebBrowser控件

{

Handled=false;

return;

}

Handled=(IsDialogMessage(CppWebBrowser->Handle,&Msg));

if(Handled&&(!CppWebBrowser->Busy))

{

if(FOleInPlaceActiveObject==NULL)

{

Dispatch=CppWebBrowser->Application;

if(Dispatch!=NULL)

{

Dispatch->QueryInterface(__uuidof(IOleInPlaceActiveObject),(void**)&iOIPAO);

if(iOIPAO!=NULL)

FOleInPlaceActiveObject = iOIPAO;

}

}

if(FOleInPlaceActiveObject!=NULL)

if((Msg.message == WM_KEYDOWNMsg.message==WM_KEYUP)&&(Msg.wParam==VK_BACKMsg.wParam==VK_LEFTMsg.wParam==VK_RIGHT)){}

else

FOleInPlaceActiveObject->TranslateAccelerator(&Msg);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有