WEB开发网
开发学院软件开发VC VC6中使用CHtmlView在对话框控制中显示HTML文件 阅读

VC6中使用CHtmlView在对话框控制中显示HTML文件

 2008-11-13 19:32:52 来源:WEB开发网   
核心提示: BOOLCAboutDialog::OnInitDialog(){VERIFY(CDialog::OnInitDialog());VERIFY(m_page.CreateFromStatic(IDC_HTMLVIEW,this));m_page.LoadFromResource(_T(&q

BOOLCAboutDialog::OnInitDialog()
{
   VERIFY(CDialog::OnInitDialog());
   VERIFY(m_page.CreateFromStatic(IDC_HTMLVIEW,this));
   m_page.LoadFromResource(_T("about.htm"));
   returnTRUE;
}

CHtmlCtrl::CreateFromStatic是个很简单的函数,它用于简化对话框的设计。因为用插入COM对象的方法太麻烦,所以我在对话框中插入了一个静态控件,改变它的缺省ID号。然后调用CreateFromStatic,以完全相同的ID号、大小、位置创建一个静态CStatic对象。然后在调用DestroyWindow,这个方法很有效。为了加载web页面,调用CHtmlCtrl::LoadFromResource函数,它是由CHtmlView继承而来的。也可以用全路径res://AboutHtml.exe/about.htm作为参数。

现在您已经知道了CHtmlCtrl是如何在对话框中绕过CView来替代框架;知道了如何创建HTML文件,其中包含文字、图像和声音,并把它作为资源在程序中使用。

除此之外,还有一个问题就是:CAboutDialog对话框中“OK”按钮的处理,其实,它根本就不是一个按钮,而是一个在HTML文件中嵌入的图像,用JScript来控制图像被按下时和弹起时的状态。处理“OK”按钮的技巧主要是解决对话框与主控程序之间的通讯。

利用动态HTML文档层(COM)技术可以处理用户单击图像或链接,方法是获得图像元素,然后侦听OnClick事件。但这是一种非常非常麻烦的方法。有没有更简单的方法呢……对于编程者来说,懒惰是一种美德。

假设HTML有如下的图像链接:

当用户单击它时,浏览器显示这个“OK”文件,但是在显示之前,控制先执行CHtmlCtrl::OnBeforeNavigate2。CHtmlCtrl能够在这个函数中做想做的任何事情。

voidCMyHtmlCtrl::OnBeforeNavigate2(LPCTSTRlpszURL,...,BOOL*pbCancel)

上一页  1 2 3 4 

Tags:VC 使用 CHtmlView

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接