首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CHtmlEditCtrl的2个小疑点,怎么判断加载成功以及tab顺序的有关问题

2012-12-18 
CHtmlEditCtrl的2个小问题,如何判断加载成功以及tab顺序的问题CHtmlEditCtrl这方面的资料好少,第一个问题,

CHtmlEditCtrl的2个小问题,如何判断加载成功以及tab顺序的问题
CHtmlEditCtrl这方面的资料好少,第一个问题,对话框程序动态创建了一个CHtmlEditCtrl,有个成员变量保存了HTML文本,我想在对话框第一次show出来时就显示加载这个HTML文本,代码在OnInitDialog中,如下


    IHTMLDocument2 *pDoc = NULL;
m_HtmlEditCtrl.GetDHtmlDocument(&pDoc);
if (NULL == pDoc)
{
return ;
}
HRESULT   hr; 
CComPtr <IHTMLElement>   pBody; 
hr   =   pDoc-> get_body(&pBody); 
      //...后面加载字符串并显示的代码就省了

hr为S_OK,但是pBody为空,多次试验发现如果这段代码放在按钮事件响应中pBody就不为空,于是我用了个馊主意,OnInitDialog中postmessage,消息中加载,但有时候还是不行,查了下资料,响应DownloadComplete事件,代码改成

IHTMLDocument2 *pDoc = NULL;
m_HtmlEditCtrl.GetDHtmlDocument(&pDoc);
if (NULL == pDoc)
{
return ;
}

BSTR str2;
if (pDoc->get_readyState(&str2) )
{
return ;
}

if (!_tcscmp(str2,_T("loading")))
{
return ;
}

HRESULT   hr; 
CComPtr <IHTMLElement>   pBody; 
hr   =   pDoc-> get_body(&pBody); 


这样改有什么问题没,总感觉哪里不对劲,还有其他什么方法没,请指教
[解决办法]
还有个问题请教下,对话框上有3个EDIT和一个CHtmlEditCtrl,都是动态生成的,通过setwindowpos改变TAB顺序,发现没有CHtmlEditCtrl时TAB顺序正确,而如果动态创建了CHTMLEDITCTRL则TAB无法正确跳转,并且每按一次SHITF都有一句警告
Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
Test.exe 中的 0x75e19673 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012e8ac 处的 COleException。

热点排行