CDHtmlDialog类的使用心得

时间:2021-12-16 10:13:29 心得体会 我要投稿

CDHtmlDialog类的使用心得

在CDHtmlDialog类使用中,总是会遇到HTML不能正确解析资源的问题。我的经验如下:

1。使用绝对路径在资源里引入HTML网页和图片资源:

CDHtmlDialog类的使用心得

使用RES://应用程序名称/资源类型/#资源号,

例如:如果你的应用程序名为c.exe,html网页或资源保存在HTML类型下。并且查看资源标示号为133,便可以这样引用:res://c.exe/html/#133。或这样引用:res

://c:/c.exe/html/#133 2。使用相对路径引用:

如果使用方法1,总得去寻找应用程序名称,如果引入的是html中的图片,有诸多不便,譬如:应用程序如果改变了名称,那调用便会无效。为了防止这些纠葛,有一个非常好的办法就是:把所有使用的资源(图片,CSS,JS等),统统放到HTML资源类型下,引用的时候写成res://#资源号就可以了。譬如上例便可以这样引用:res:/#133。当然好像res:/和res://是通用的。

3。FLASH控件的支持:

我没有在资源里引用flash成功,看了看flash的官方文档,好像必须为绝对路径才可以。例如movie="d:\\flash\\test.swf"是可以成功的。

4。不在资源里引用HTML,直接在本地文件里使用。可以在CDHtmlDialog的继承类里添加一个函数来处理。

void CDHtmlViewSpec:GotoUrl(LPCTSTR pszUrl)

.{

CString strPath,str;

DWORD dwSize=MAX_PATH;

:GetModuleFileName(NULL,strPath.GetBuffer(MAX_PATH),dwSize);//AfxGetResourceHandle()

strPath.ReleaseBuffer(dwSize);

str=strPath.Left(strPath.ReverseFind('\\')+1);

ASSERT(pszUrl!=NULL);

if(pszUrl!=NULL)

.{

CString strUrl;

strUrl=str+pszUrl;

Navigate(_T("file:///")+strUrl);

}

}

本函数为了方便没有对路径进行更多处理,在使用的时候,可以以exe文件所在的'目录为当前目录,以相对路径表示pszUrl。调用方法:

gotoUrl("html\\test.html")

gotoUrl(".\\html2\test.htm")

这样载入HTML网页,网页内的资源定位都是相对路径定义即可。图片和flash都可以正常载入。

不过这样的话,就有个问题,用户可以随时修改你的html文件。如果你有消息处理的话,很容易就使你的程序崩溃。

我一般的做法就是修改html的扩展名,迫使一般用户不轻易修改它,譬如改称.dat。(王朝网络wangchao.net.cn)

作者:Joseph Pan发表于2011-02-17 21:50原文链接

评论:0查看评论发表评论

最新新闻:

·Firefox 5部分新功能曝光(2011-02-17 21:06)

·阿里巴巴3月17日召开董事会会议(2011-02-17 21:00)

·谷歌1.3亿美元买下都柏林最高办公楼(2011-02-17 20:59)

·索尼在美国推出音乐服务挑战iTunes(2011-02-17 20:53)

·Valve的每雇员利润超过Google和苹果(2011-02-17 20:40)

编辑推荐:给想当程序员的大二学生的建议

网站导航:博客园首页我的园子新闻闪存小组博问知识库

【CDHtmlDialog类的使用心得】相关文章:

ObjectiveC类的使用 -电脑资料01-01

vbs类的使用方法 -电脑资料01-01

英文演讲中常使用的12类过渡词02-09

关于类成员函数在模板中的使用 -电脑资料01-01

橱柜使用心得09-13

《天文学进展》的LATEX文档类使用说明07-02

脚本图片类后门使用方法 -电脑资料01-01

教学平台的使用培训心得09-12

AUTOCAD使用心得 -工程01-01