雖然所有的喬納森波特說是對的,似乎這可以用COM來完成,沒有太多的文獻在Stackoverflow中放置一個鏈接,所以我寧願把我在互聯網上找到的一個最小的例子來控制大小和IE的位置。
#include <windows.h>
#include "Mshtml.h"
void testme(void * ptr)
{
RECT * rect = (RECT *)ptr;
CLSID clsid;
LPUNKNOWN punk = NULL;
IWebBrowser2 *pWB = NULL;
IHTMLDocument2 *pHTML = NULL;
IHTMLElementCollection *pElement = NULL;
IDispatch *pdisp = NULL;
DISPID dispidNamed = DISPID_PROPERTYPUT;
VARIANT_BOOL bBusy;
VARIANT var;
OleInitialize(NULL);
CLSIDFromProgID(OLESTR("InternetExplorer.Application"), &clsid);
CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IUnknown, (LPVOID *)&punk);
punk->QueryInterface(IID_IWebBrowser2, (LPVOID *)&pWB);
pWB->put_Visible(TRUE);
pWB->put_Height(300);
pWB->put_Top(rect->top);
pWB->put_Left(rect->left);
pWB->put_Width(rect->right - rect->left);
pWB->put_Height(rect->bottom - rect->top);
BSTR bstrVal = SysAllocString(L"http://localhost:8080"); //Set web page on IE
var.vt = VT_I4;
var.lVal = 0;
pWB->Stop();
pWB->Navigate(bstrVal, &var, &var, &var, &var);
SysFreeString(bstrVal);
struct info info;
long IE_HWND = 0;
if (pWB->get_HWND(&IE_HWND) != S_OK)
{
AfxMessageBox("Failed: pWB->get_HWND");
return;
}
pWB->Release();
punk->Release();
OleUninitialize();
}
現在如果你想IE以顯示文檔,而不是下載,把一個內容類似的響應: 「內容處置」,「內聯; _file_name_.pdf」
的Word和Acrobat觀察最後一個文件被關閉的位置,而不是那個屬性。 – user311174
@ user311174確切地說,它是否尊重它,取決於應用程序。沒有辦法可靠地做到這一點,這就是我所說的。 –
我沒有說你錯了,的確我提高了你的答案。當我有更多的時間我想探索WebExplorer的解決方案,並在這裏如果正確的地方暴露它,其他我會接受你的答案(問題是試圖控制一個文件,不管如何) – user311174