- 相關推薦
CDHtmlDialog類的使用心得
在CDHtmlDialog類使用中,總是會遇到HTML不能正確解析資源的問題。我的經驗如下:1。使用絕對路徑在資源里引入HTML網(wǎng)頁和圖片資源:
使用RES://應用程序名稱/資源類型/#資源號,
例如:如果你的應用程序名為c.exe,html網(wǎng)頁或資源保存在HTML類型下。并且查看資源標示號為133,便可以這樣引用:res://c.exe/html/#133;蜻@樣引用:res
://c:/c.exe/html/#133 2。使用相對路徑引用:
如果使用方法1,總得去尋找應用程序名稱,如果引入的是html中的圖片,有諸多不便,譬如:應用程序如果改變了名稱,那調用便會無效。為了防止這些糾葛,有一個非常好的辦法就是:把所有使用的資源(圖片,CSS,JS等),統(tǒng)統(tǒng)放到HTML資源類型下,引用的時候寫成res://#資源號就可以了。譬如上例便可以這樣引用:res:/#133。當然好像res:/和res://是通用的。
3。FLASH控件的支持:
我沒有在資源里引用flash成功,看了看flash的官方文檔,好像必須為絕對路徑才可以。例如movie="d:\\flash\\test.swf"是可以成功的。
4。不在資源里引用HTML,直接在本地文件里使用?梢栽贑DHtmlDialog的繼承類里添加一個函數(shù)來處理。
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);
}
}
本函數(shù)為了方便沒有對路徑進行更多處理,在使用的時候,可以以exe文件所在的目錄為當前目錄,以相對路徑表示pszUrl。調用方法:
gotoUrl("html\\test.html")
gotoUrl(".\\html2\test.htm")
這樣載入HTML網(wǎng)頁,網(wǎng)頁內的資源定位都是相對路徑定義即可。圖片和flash都可以正常載入。
不過這樣的話,就有個問題,用戶可以隨時修改你的html文件。如果你有消息處理的話,很容易就使你的程序崩潰。
我一般的做法就是修改html的擴展名,迫使一般用戶不輕易修改它,譬如改稱.dat。(王朝網(wǎng)絡wangchao.net.cn)
作者:Joseph Pan發(fā)表于2011-02-17 21:50原文鏈接
評論:0查看評論發(fā)表評論
最新新聞:
·Firefox 5部分新功能曝光(2011-02-17 21:06)
·阿里巴巴3月17日召開董事會會議(2011-02-17 21:00)
·谷歌1.3億美元買下都柏林最高辦公樓(2011-02-17 20:59)
·索尼在美國推出音樂服務挑戰(zhàn)iTunes(2011-02-17 20:53)
·Valve的每雇員利潤超過Google和蘋果(2011-02-17 20:40)
編輯推薦:給想當程序員的大二學生的建議
網(wǎng)站導航:博客園首頁我的園子新聞閃存小組博問知識庫
【CDHtmlDialog類的使用心得】相關文章:
櫥柜使用心得09-13
多媒體使用的心得04-26
談談獸王的使用心得04-28
班班通使用心得05-06
安全工器具使用培訓心得09-05
工具使用培訓心得(精選6篇)01-28
數(shù)學導學案使用心得04-10
詳細作業(yè)使用心得04-27
工程類實習心得02-23
英語新教材使用心得08-19