让CppWebBrowser响应回车键
当前位置:以往代写 > C/C++ 教程 >让CppWebBrowser响应回车键
2019-06-13

让CppWebBrowser响应回车键

让CppWebBrowser响应回车键

最近本人在研究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);
     }
}

作者mail:[email protected]

老妖注: 不外,假如您的Form中插手了其他的第三方控件,如SuiPack,以上所述要领不会起浸染.奇怪ing….也但愿Nicrosoft伴侣看一下.

    关键字:

在线提交作业