IHTMLDocument2::get_body()获取到的指针为空

时间:2022-01-23 08:46:29

IHTMLDocument2 *pDoc = NULL;
m_HtmlEditCtrl.GetDHtmlDocument(&pDoc);
if (NULL == pDoc)
{
return ;
}
HRESULT   hr; 
CComPtr <IHTMLElement>   pBody; 
hr   =   pDoc-> get_body(&pBody); 

pBody一直为空,同样的代码在另一个对话框里不为空,这是什么情况

10 个解决方案

#1


试了下,pDoc->get_bgColor()能获取到背景色.get_body死活不成功。。

#2


check hr

#3


引用 2 楼 gw_net 的回复:
check hr

返回S_OK,看样子时成功了,但获取到得指针死活就是个空的。。我最怕这种问题了。

#4


有经验的请指点下,解决了加分到100,3Q

#5


会不会是网页还没完全打开,或者说完全loadcomplete?

#6


引用 5 楼 dream238 的回复:
会不会是网页还没完全打开,或者说完全loadcomplete?

我用的是MFC的CHtmlEditCtrl,初始为编辑模式,没有加载网页。。

#7


我想要实现的功能比较简单,就是把存储了HTML代码的字符串以网页形式显示到控件窗口上。就像这样

IHTMLDocument2 *pDoc = NULL;
m_HtmlEditCtrl.GetDHtmlDocument(&pDoc);
if (NULL == pDoc)
{
return ;
}
HRESULT   hr; 
CComPtr <IHTMLElement>   pBody; 
hr   =   pDoc-> get_body(&pBody); 

BSTR str1 = _T("<div style=…………></span>");
pBody->put_innerHTML(str1);

#8


可能是你的窗口还没有显示出来吧!

#9


可能是你的窗口还没显示出来吧

#10


引用 9 楼 bak5219 的回复:
可能是你的窗口还没显示出来吧

不是窗口没显示出来,是文档没加载完。

#1


试了下,pDoc->get_bgColor()能获取到背景色.get_body死活不成功。。

#2


check hr

#3


引用 2 楼 gw_net 的回复:
check hr

返回S_OK,看样子时成功了,但获取到得指针死活就是个空的。。我最怕这种问题了。

#4


有经验的请指点下,解决了加分到100,3Q

#5


会不会是网页还没完全打开,或者说完全loadcomplete?

#6


引用 5 楼 dream238 的回复:
会不会是网页还没完全打开,或者说完全loadcomplete?

我用的是MFC的CHtmlEditCtrl,初始为编辑模式,没有加载网页。。

#7


我想要实现的功能比较简单,就是把存储了HTML代码的字符串以网页形式显示到控件窗口上。就像这样

IHTMLDocument2 *pDoc = NULL;
m_HtmlEditCtrl.GetDHtmlDocument(&pDoc);
if (NULL == pDoc)
{
return ;
}
HRESULT   hr; 
CComPtr <IHTMLElement>   pBody; 
hr   =   pDoc-> get_body(&pBody); 

BSTR str1 = _T("<div style=…………></span>");
pBody->put_innerHTML(str1);

#8


可能是你的窗口还没有显示出来吧!

#9


可能是你的窗口还没显示出来吧

#10


引用 9 楼 bak5219 的回复:
可能是你的窗口还没显示出来吧

不是窗口没显示出来,是文档没加载完。