当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

让CppWebBrowser呼应回车键[VC/C++编程]

赞助商链接



  本文“让CppWebBrowser呼应回车键[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

近来本人在研究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:blueelfin@vip.163.com

老妖注: 不过,假如您的Form中加入了其他的第三方控件,如SuiPack,以上所述办法不会起作用.奇特ing….也但愿Nicrosoft朋友看一下.


  以上是“让CppWebBrowser呼应回车键[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 让CppWebBrowser呼应回车键
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .