604
社区成员
发帖
与我相关
我的任务
分享
void __fastcall TfmMain::ApplicationEvents1Message(
tagMSG &Msg, bool &Handled)
{
static const char *web_browser_classname = "Internet Explorer_Server";
static int classname_len = strlen(web_browser_classname);
static char classname[MAX_PATH];
if(m_IsCloseAllNow)return; // 正在退出,不作处理
if(0 == this->MDIChildCount)return;
// 检查是否本窗口
HWND hParent;
HWND hWnd = GetParent(Msg.hwnd); // Shell DocObject_View
while(hWnd != NULL)
{
hParent = hWnd;
hWnd = GetParent(hParent);
}
if(hParent != Handle)
{
return;
}
TfmChildwin *fBrowser = GetActiveBrowserWindow();
if(fBrowser )
{
if(TabWindow->Handle == Msg.hwnd && WM_LBUTTONDBLCLK == Msg.message)
{
// TabControl控件的双击事件,关闭当前页面
Handled = true;
delete fBrowser;
return;
}
if(GetClassName(Msg.hwnd,classname,MAX_PATH) == classname_len)
{
// 判断是否TCppWebBrowser控件
if(0 == StrCmp(web_browser_classname,classname) && WM_KEYDOWN == Msg.message)
{
if(Msg.wParam == VK_RETURN)
{
if(!ComboBoxAddress->Focused())
{
// 处理回车键,模拟回车键
Handled=(IsDialogMessage(fBrowser->CppWebBrowser->Handle,&Msg));
if(Handled&&(!fBrowser->CppWebBrowser->Busy))
{
TComInterface<IOleInPlaceActiveObject> pOle(fBrowser->CppWebBrowser->Application);
if(pOle) pOle->TranslateAccelerator(&Msg);
}
return;
}
}else
if(Msg.wParam == VK_TAB)
{
if(this->MDIChildCount > 1)
{
int CtrlDown=GetKeyState(VK_CONTROL);
CtrlDown=CtrlDown&0x80;
if(CtrlDown)
{
int Indx = TabWindow->TabIndex + 1;
if (Indx >= TabWindow->Tabs->Count)
{
Indx = 0;
}
TabWindow->TabIndex = Indx;
Handled=true;
return;
}
}
}else
if(Msg.wParam == VK_ESCAPE)
{
if(ActionFullScreen->Checked)
{
ActionFullScreen->Checked = false;
SetFullScreen(false);
Handled=true;
return;
}
}
}
}
}
}