让CppWebBrowser响应回车健

2008-02-23 05:38:58来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

最近本人在研究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_KEYDOWN||Msg.message==WM_KEYUP)&&(Msg.wParam==VK_BACK||Msg.wParam==VK_LEFT||Msg.wParam==VK_RIGHT)){}
else
FOleInPlaceActiveObject->TranslateAccelerator(&Msg);
}
}




标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: C 对象的放置

下一篇: 在BCB中轻松使用ActiveX控件

热门词条
热门标签