我在做一插件,打算全屏显示。隐藏 ie 的菜单、工具栏和地址栏。请问如何实现?

解决方案 »

  1.   

    #include <Urlmon.h>
    #include <tchar.h>
    #pragma comment(lib,"urlmon")
    #include <basetyps.h>
    typedef HRESULT STDAPICALLTYPE SHOWHTMLDIALOGFN(HWND hwndParent,
        IMoniker *pMk,
        VARIANT *pvarArgIn,
        WCHAR *pchOptions,
        VARIANT *pvarArgOut
    ); void CTesthtmldlgDlg::OnOK() 
    {
    // TODO: Add extra validation here
    HMODULE hMSHTML = LoadLibrary(TEXT("MSHTML.DLL"));
    BOOL fSuccess;
    WCHAR szUrl[]=L"http://www.csdn.net";
    IMoniker* pMoniker=NULL;
    WCHAR szOptions[]=L"dialogHeight: 179px; dialogWidth: 265px; dialogTop: 99px; dialogLeft: 390px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;";
    VARIANT varReturn;
    VariantInit(&varReturn);
    SHOWHTMLDIALOGFN* pfnShow;
    if(!hMSHTML)
    {
    fSuccess = FALSE;
    goto cleanup;
    }
    pfnShow = (SHOWHTMLDIALOGFN*)GetProcAddress(hMSHTML, TEXT("ShowHTMLDialog"));
    if(!pfnShow)
    {
    fSuccess = FALSE;
    goto cleanup;
    }
    if(FAILED(CreateURLMoniker(NULL, szUrl, &pMoniker)))
    {
    fSuccess = FALSE;
    goto cleanup;
    }
    (pfnShow)(NULL, pMoniker, NULL, szOptions, &varReturn);
    //(pfnShow)(NULL, pMoniker, NULL, NULL, &varReturn);
    //::MessageBox(NULL,"show html dialog","",MB_OK);
    cleanup:
    if(pMoniker)
    pMoniker->Release();
    if(hMSHTML)
    FreeLibrary(hMSHTML);}
      

  2.   

    方法2: #define COMRELEASE(ptr) \
    if (ptr != NULL) { \
    ptr->Release(); \
    ptr = NULL; \
    } STDMETHOD(SetClientSite)(IOleClientSite* pClientSite)
    {
    IOleObject_SetClientSite(pClientSite); HRESULT hr = S_OK;
    IServiceProvider *isp, *isp2 = NULL;
    IWebBrowser2* pBrowser = NULL;

    hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **>(&isp));
    if (SUCCEEDED(hr)) 
    {
    hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2));
    if (SUCCEEDED(hr))
    {
    hr = isp2->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&pBrowser));
    if (SUCCEEDED(hr)) 
    {
    pBrowser->put_FullScreen(VARIANT_TRUE); // 全屏
    pBrowser->put_AddressBar(VARIANT_FALSE);// 关闭地址栏
    pBrowser->put_StatusBar(VARIANT_TRUE); // 关闭状态栏
    pBrowser->put_MenuBar(VARIANT_FALSE); // 关闭菜单栏
    pBrowser->put_ToolBar(FALSE); // 关闭工具栏
    }
    }
    }
    // Free resources.
    COMRELEASE(isp);
    COMRELEASE(isp2);
    COMRELEASE(pBrowser);
    return S_OK;
    }