WEB开发网
开发学院软件开发VC 在VC对话框中用ChtmlView控件显示HTML 阅读

在VC对话框中用ChtmlView控件显示HTML

 2009-05-22 20:05:54 来源:WEB开发网   
核心提示: 定义一个虚函数OnAppCmd(),处理app:命令,在VC对话框中用ChtmlView控件显示HTML(3),例如当浏览器准备导航到"app:foo"时,这个函数被调用,然后侦听OnClick事件,但这是一种非常非常麻烦的方法,参数lpszWhere的值为"

定义一个虚函数OnAppCmd(),处理app:命令,例如当浏览器准备导航到"app:foo"时,这个函数被调用,参数lpszWhere的值为"foo"。

  void CHtmlCtrl::OnAppCmd(LPCTSTR lpszWhere){ // default: do nothing}

对于作为资源的HTML文件和其中的嵌入的图片和音乐文件,用文件的实际名字作为资源名很重要,以便浏览器能够找到他们。在一个普通的Web页面中,我们使用图像是用下列语法:

  <IMG src=http://tech.ddvip.com/2009-05/"pd.jpg">

此代码假设图像文件"pd.jpg"存在当前目录(页面文件所在目录)中。如果图像文件是作为资源存在EXE文件中,我们如何引用呢?方法一样,此时,我们必须告诉浏览器Web页面文件的位置。为此要在Web页面文件的开头加上如下代码:

  <BASE url="res://ShowHtml.exe/about.htm">

这一行代码告诉浏览器当前目录是"res://ShowHtml.exe",当浏览器遇到代码<IMG src=http://tech.ddvip.com/2009-05/"pd.jpg">时,它会按照路径res://ShowHtml.exe/pd.jpg查找。否则,它会在程序文件的路径查找。通常用res://modulename可以访问动态库或可执行文件中的资源。这里res:的意思与http:,ftp:,file:,及mailto的意思相同。即:"在这个路径中的第一个名字是一个文件名,第二个名字是文件中的资源名"。其余的工作由浏览器完成。

为了在对话框中加载web页面,调用CHtmlCtrl::LoadFromResource函数,它是由CHtmlView继承而来的。也可以用全路径res://ShowHtml.exe/about.htm作为参数。除此之外,还有一个问题就是:CAboutDialog对话框中"OK"按钮的处理,其实,它根本就不是一个按钮,而是一个在HTML文件中嵌入的图像,用JScript来控制图像被按下时和弹起时的状态。处理"OK"按钮的技巧主要是解决对话框与主控程序之间的通讯。利用动态HTML文档层(COM)技术可以处理用户单击图像或链接,方法是获得图像元素,然后侦听OnClick事件。但这是一种非常非常麻烦的方法。还有一种更简单的方法。假设HTML有如下的图像链接:

上一页  1 2 3 4 5  下一页

Tags:VC 对话框 中用

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