没有办法。我最后的解决方法是:在被打开的窗口中加载自己写的ocx,先通过底层com方法获取当前IE窗口的IWebBrowser2对象,再调用IWebBrowser2的各种方法修改窗口的属性。下面是BCB开发的ocx的相关代码: void __fastcall AdjustIEWindow(TRect WinSize, bool ShowMenu)
{
try {
CComPtr<IOleContainer> iOct;
OleCheck(m_spClientSite->GetContainer(&iOct)); CComQIPtr<IServiceProvider,&IID_IServiceProvider> iSpv(iOct);
if(iSpv==NULL) return; CComPtr<IServiceProvider> iSpvTop;
OleCheck(iSpv->QueryService(SID_STopLevelBrowser, IID_IServiceProvider,
reinterpret_cast<void **>(&iSpvTop)));
if(iSpvTop==NULL) return; CComPtr<IWebBrowser2> iWbs;
OleCheck(iSpv->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2,
reinterpret_cast<void **>(&iWbs)));
if(iWbs!=NULL)
{
try {
HWND h=NULL;
OleCheck(iWbs->get_HWND((long*)&h));
if(h!=NULL) {
::ShowWindow(h,SW_SHOWNORMAL);
}
}
catch(...) {
}
if(ShowMenu==false) {
OleCheck(iWbs->put_ToolBar(false));
OleCheck(iWbs->put_MenuBar(false));
}
OleCheck(iWbs->put_AddressBar(false));
OleCheck(iWbs->put_Resizable(false));
OleCheck(iWbs->put_Left(WinSize.Left));
OleCheck(iWbs->put_Top(WinSize.Top));
OleCheck(iWbs->put_Width (WinSize.Width()));
OleCheck(iWbs->put_Height(WinSize.Height()));
}
}
catch(...) {
}
}
{
try {
CComPtr<IOleContainer> iOct;
OleCheck(m_spClientSite->GetContainer(&iOct)); CComQIPtr<IServiceProvider,&IID_IServiceProvider> iSpv(iOct);
if(iSpv==NULL) return; CComPtr<IServiceProvider> iSpvTop;
OleCheck(iSpv->QueryService(SID_STopLevelBrowser, IID_IServiceProvider,
reinterpret_cast<void **>(&iSpvTop)));
if(iSpvTop==NULL) return; CComPtr<IWebBrowser2> iWbs;
OleCheck(iSpv->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2,
reinterpret_cast<void **>(&iWbs)));
if(iWbs!=NULL)
{
try {
HWND h=NULL;
OleCheck(iWbs->get_HWND((long*)&h));
if(h!=NULL) {
::ShowWindow(h,SW_SHOWNORMAL);
}
}
catch(...) {
}
if(ShowMenu==false) {
OleCheck(iWbs->put_ToolBar(false));
OleCheck(iWbs->put_MenuBar(false));
}
OleCheck(iWbs->put_AddressBar(false));
OleCheck(iWbs->put_Resizable(false));
OleCheck(iWbs->put_Left(WinSize.Left));
OleCheck(iWbs->put_Top(WinSize.Top));
OleCheck(iWbs->put_Width (WinSize.Width()));
OleCheck(iWbs->put_Height(WinSize.Height()));
}
}
catch(...) {
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货