在VC对话框中用ChtmlView控件显示HTML
2009-05-22 20:05:54 来源:WEB开发网<A href="ok"><IMG ...></A>
当用户单击它时,浏览器显示这个"OK"文件,但是在显示之前,控制先执行CHtmlView::OnBeforeNavigate2()函数,为此可以定义CHtmlCtrl类的子类CMyHtmlCtrl,重载这个函数,在这里面实现想做的任何事情。下面的代码实现了当用户点击HTML文件上的"OK"图片时,关闭对话框。
void CHtmlCtrl::OnBeforeNavigate2(
LPCTSTR lpszURL,
...,
BOOL* pbCancel)
{
if (_tcscmp(lpszURL,_T("ok"))==0)
{
// "ok" clicked:
*pbCancel=TRUE; // abort
GetParent()->SendMessage(WM_COMMAND,IDOK); // will close dialog
}
}
其实"OK"并不是什么文件;它只是一个很特殊的名字,可以定义一个CHtmlCtrl类的子类CMyHtmlCtrl,该类将"OK"图片看作是"OK"按钮。为了实现这个想法,程序中创建了一个叫app:的冒充协议来代替"OK",在about.htm中定义实际的链接是app:ok。每当浏览器导航到app:somewhere的时候,CMyHtmlCtrl都以"somewhere"为参数调用一个虚函数:CMyHtmlCtrl::OnAppCmd。
void CMyHtmlCtrl::OnAppCmd( LPCTSTR lpszWhere )
{
if (_tcsicmp(lpszWhere, _T("ok"))==0)
{
GetParent()->SendMessage(WM_COMMAND,IDOK);
}
}
二、编程步骤
1、启动Visual C++6.0,生成一个单文档的应用程序,命名为"ShowHtml";
更多精彩
赞助商链接