关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享让CppWebBrowser响应回车健教程,希望对大家能有一点小小的帮助。
【 tulaoshi.com - 编程语言 】
最近本人在研究CppWebBrowser的用法,发现这个控件最大的毛病就是不响应回车,即使用OleInitialize(NULL)来初始化也一样。经过在CSDN的一发查找,发现了Delphi的解决代码,先专成BCB的代码公布如下。
先声明一个私有变量:
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)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朋友看一下.
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)来源:http://www.tulaoshi.com/n/20160219/1612456.html
看过《让CppWebBrowser响应回车健》的人还看了以下文章 更多>>