CDHtmlDialog加载图片使用相对路径的问题
在我的htm中是这样设置背景图片的
background-image:url(xxxxx);
1.我在网上搜了一下,我按照这个页面上的方法做了http://hi.baidu.com/catalove/blog/item/83e7962b446007fce7cd4008.html
写成
background-image:url(res://#130); //130是我resource.h里面这个背景图的资源id。
失败。。。。
2.直接写相对路径
background-image:url(../xd/bg.gif);
失败。。。。
请问怎么做?
[解决办法]
在 html head中加上base属性即可使用相对路径 http://www.w3school.com.cn/tags/tag_base.asp
[解决办法]
呵呵,我曾经也遇到这个问题,不过都很好的解决了,外置CSS或JS文件也一样的,贴上我写的代码,m_pDhtmlDlg为CDhtmDlg的指针
typedef enum InnerFileType{ FileTypeJavaScript, FileTypeCSS, FilePathBackground,};/*设置外链JS,CSS文件或背景图片文件路径,bRelative为TRUE时,filePath指定为相对于可执行文件的路径,否则为绝对路径。如果设置了错误路径,会导致javascript运行出错,css无效。*/BOOL CDhtmlHelp::SetJSOrCSSFilePath(InnerFileType type, LPCTSTR eleID, LPCTSTR filePath, BOOL bRelative /*= TRUE*/ ){ HRESULT hr; IHTMLElement *pEle; hr = m_pDhtmlDlg->GetElement( eleID, &pEle ); if ( FAILED(hr) ) { return FALSE; } CComBSTR name; if ( type == FileTypeJavaScript ) { name = _T("src"); } else if ( type == FileTypeCSS ) { name = _T("href"); } else if ( type == FilePathBackground) { name = _T("background"); } else { return FALSE; } TCHAR tszPath[MAX_PATH] = {0}; if ( !bRelative ) { _tcscpy(tszPath,filePath); } else { if ( 0 == GetModuleFileName( NULL, tszPath, MAX_PATH ) ) { return FALSE; } //取exe文件所在目录 TCHAR *pItalic = _tcsrchr( tszPath, _T('\\') ); if ( pItalic == NULL ) { return FALSE; } pItalic++;//指向斜杠后面一个字符 memset( pItalic, _T('\0'), _tcslen(pItalic)*sizeof(TCHAR) ); _tcscat( tszPath, filePath ); } CComBSTR value(tszPath); VARIANT str; str.vt = VT_BSTR; str.bstrVal = value; hr = pEle->setAttribute( name, str,0 ); if ( FAILED(hr) ) { return FALSE; } return TRUE;}