您的位置


VC教程
 
 
 

VC++:用对话框形式显示HTML文件

在安装了IE4后,可以在程序中用对话框的形式显示HTML文件,如弹出用HTML写的帮助文件等等,如同直接用浏览器,但又与浏览器风格不同。

----其实现如下:
//在头文件或.cpp文件的开头包含文件urlmon.h,定义函数
/////
#include "urlmon.h"
typedef HRESULT STDAPICALLTYPE SHOWHTMLDIALOGFN(HWND hwndParent, IMoniker
*pmk, VARIANT *pvarArgIn, TCHAR* pchOptions,VARIANT *pvArgOut);
//////

//函数显示对话框,成功返回TRUE,失败返回FALSE
BOOL ShowHtml()
{
HINSTANCE hinstMSHTML = LoadLibrary(TEXT("MSHTML.DLL")); //装载动态连接库
WCHAR url[]=L"HTTP://www.ccw.com.cn";//此地址名称可直接用html文件名代替

if(hinstMSHTML)//装载动态连接库成功
{
SHOWHTMLDIALOGFN *pfnShowHTMLDialog;

pfnShowHTMLDialog = (SHOWHTMLDIALOGFN*)
GetProcAddress(hinstMSHTML,
TEXT ("ShowHTMLDialog"));

if(pfnShowHTMLDialog)
{
IMoniker *moniker=NULL;

//
if( FAILED(CreateURLMoniker(NULL,
(LPWSTR)url,&moniker ) ))
{
FreeLibrary(hinstMSHTML);
return FALSE;
}

//调用ShowHTMLDialog函数显示URL上的HTML文件
pfnShowHTMLDialog(m_hWnd,moniker,NULL,NULL,NULL);

if(moniker!=NULL)
moniker->Release();

//显示成功,返回TRUE
return TRUE;

}
else //GetProcessAddress失败
return FALSE;

FreeLibrary(hinstMSHTML);
}
else //装载动态连接库失败
return FALSE;
}