让CppWebBrowser响应回车健

时间:2010-04-28 16:00:28  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:ct __RPC_FAR *FOleInPlaceActiveObject; 然后在主窗体添加一个ApplicationEvents控件,在它的OnMessage事件里天加入下代码: void __fastcall TfmChildwin::ApplicationEvents1Message(tagMSG &Msg,    bool &Handled) {     IOleInPlaceActiveObject __RPC_FAR *iOIPAO;     Idispatch __RPC_FAR *Dispatch;     if(CppWeb...
  正文:最近本人在研究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);
    }
}

"让CppWebBrowser响应回车健"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-04-28/13805.html


关键字:

关于《让CppWebBrowser响应回车健》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td