+ -
当前位置:首页 → 问答吧 → ShowHTMLDialog如何让所有连接都在一个页面中

ShowHTMLDialog如何让所有连接都在一个页面中

时间:2011-12-16

来源:互联网

C/C++ code

BOOL CVideoClientView::OpenUrlInIE(CString strUrl, int nWidth, int nHeight)
{
    HMODULE   hMSHTML   =   LoadLibrary(TEXT( "MSHTML.DLL")); 
    BOOL   fSuccess = TRUE; 
    WCHAR   szUrl[] = L"http://www.csdn.net";
    IMoniker*   pMoniker=NULL; 
    WCHAR   szOptions[256];//=L"dialogHeight:   590px;   dialogWidth:   743px;   dialogTop:   99px;   dialogLeft:   390px;   edge:   Raised;   center:   Yes;   help:   Yes;   resizable:   Yes;   status:   Yes; "; 
    swprintf(szOptions, L"dialogHeight:%dpx; dialogWidth: %dpx; dialogTop:99px;dialogLeft:390px;\
                         edge:Raised;center:Yes;help:Yes;resizable:Yes;status:Yes;", nHeight, nWidth);
    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); 
cleanup: 
    if(pMoniker) 
        pMoniker-> Release(); 
    if(hMSHTML) 
        FreeLibrary(hMSHTML); 

    if (fSuccess)
    {
        return TRUE;
    }
    return FALSE;
}


调用时可以弹出ie
但是点击超链接时,又打开了一个页面。

作者: buffaloox   发布时间: 2011-12-16

如何让页面都在一个页面里显示????谢谢!!!!

作者: buffaloox   发布时间: 2011-12-16

应该是ie设置里面在当前窗口打开,要么手动改ie设置,要么程序修改注册表。

作者: Nowish   发布时间: 2011-12-16

html里面是在本页面打开。

作者: buffaloox   发布时间: 2011-12-16

CreateURLMonikerEx

作者: aizeng   发布时间: 2011-12-16

同样一个超连接,用其它浏览器,不会弹出新窗口。
用ShowHTMLDialog创建的建议窗口就会。

作者: buffaloox   发布时间: 2011-12-16

CreateURLMonikerEx
参数如何设置???

作者: buffaloox   发布时间: 2011-12-16

HRESULT CreateURLMonikerEx(
  LPMONIKER pMkCtx,
  LPCWSTR szURL,
  LPMONIKER* ppmk,
  DWORD dwFlags
);

dwFlags 
URL_MK_LEGACY Use the same URL parser as CreateURLMoniker.  
URL_MK_UNIFORM Use the updated URL parser. 
俺也不确定是不是符合lz的要求。你试试吧。

作者: aizeng   发布时间: 2011-12-16

这两个我都试了,结果还是一样的.

作者: buffaloox   发布时间: 2011-12-16