CDHtmlDialog加载图片使用相对路径的问题

lanmu01 2010-02-25 10:55:50
在我的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);
失败。。。。

请问怎么做?
...全文
349 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanmu01 2010-02-25
  • 打赏
  • 举报
回复
base只是指定了一个默认的路径而已,没有解决根本问题。
skyxie 2010-02-25
  • 打赏
  • 举报
回复
在 html head中加上base属性即可使用相对路径 http://www.w3school.com.cn/tags/tag_base.asp
jackson35296 2010-02-25
  • 打赏
  • 举报
回复
呵呵,我曾经也遇到这个问题,不过都很好的解决了,外置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;
}
最近两天在弄一个界面显示的事情,虽然要求不高,不过还是想做得好看一些,就想在htmldialog上来显示web脚本,这样也方便格式化显示。 但是这htmldialog只能显示url,而无法显示一段html脚本,于是通过研究和思路改变,也为了以后方便使用,特意写了个简单的dll库来实现这个功能,它可以加载url,也可以加载一段html代码。 加载url时,由于没有处理安全类的东西,所以可能会出现许多提示,所以此库不建议使用这一功能。 加载html代码时,应该是需要一个完整的代码,包括<html>等标签 工程说明: 都采用vs2015编译 showhtml 工程:主功能实现库,可以在其它程序中使用它,包含showhtml/showhtml.api.h文件,然后链接showhtml.lib。其提供两个接口: CreateHtmlShow(),用于生成一个用来显示的窗口,它必需有一个父窗口,其返回值在后面显示时需要。如果返回值小于等于0,则表示失败 NavigateHtml(),用于加载一个url或者显示一段html代码,其第一个参数为CreateHtmlShow()的返回值。 CreateHtmlShow()接口返回值存在的意义,在一个程序中,可能会同时多个地方显示html内容,所以需要对每个显示添加标示 至于窗口关闭时,则库自动删除对应的web显示窗口。 shdemo 工程:html显示的测试工程 如有问题,请联系: hyd2001_2008@163.com 2018.7.10

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧