CDhtmlDialog窗体更新问题?

happyzeng79 2015-11-16 04:06:46
在使用VS2003的工具,建立了MFC的基于对话框的项目,对话框类均是继承于CDHtmlDialog类,
使用网页形式(html)形式来显示界面。 一个窗体对应一个html文件,只是这个html文件定义好一些<p id="test1"></p>块,
这些显示内容块希望由在窗体类的.cpp文件中通过代码SetElementHtml(strHtmlID, bstrInfo)去控制显示不同的文字内容。
当时我在OnInitDialog函数中调用SetElementHtml时,发现无法使得新设置的文字内容显示出来,
包括之后使用了UpdataWindow, UpdateUI等方法去更新窗体界面才无法让Html的内容去更新。
但是在OnTimer事件中调用SetElementHtml方法即可以让显示内容更新。
想请教各位,CDHtmlDialog窗体是在什么情况下更新显示界面的,怎么去动态改变HTML网页的显示内容,并显示出来。
CDHtmlDialog窗体的建立,显示界面变化的过程是怎样的呢?
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
luawkk 2015-12-03
  • 打赏
  • 举报
回复
我想问下,如何在VC中,增加HTML元素并且立刻显示出来呢?谢谢
redui 2015-11-18
  • 打赏
  • 举报
回复
这个涉及到DOM操作,里面的内容太多了,建议看看MSDN,很详细,进入DOM的方法就是首先获得浏览器中的文档接口,IWebBrowser2::get_document,然后根据DOM对象的属性和操作一步一步来,你可以完全控制网页
happyzeng79 2015-11-17
  • 打赏
  • 举报
回复
引用 1 楼 redui 的回复:
网页加载是异步的,当你执行Navigate方法时,只是启动了加载过程,并不是马上就显示了,你应该在OnDocumentComplete虚函数里执行你的页面内容控制操作,而不是OnInitDialog。
谢谢 redui 兄的指点,刚才测试了在OnDocumentComplete中调用是可以更新文字显示内容的。谢谢! 能否大概讲解下怎么去控制网页显示内容并显示出来呢?
redui 2015-11-16
  • 打赏
  • 举报
回复
网页加载是异步的,当你执行Navigate方法时,只是启动了加载过程,并不是马上就显示了,你应该在OnDocumentComplete虚函数里执行你的页面内容控制操作,而不是OnInitDialog。注意:如果页面包含frameset或者iframe等子框架,OnDocumentComplete会被调用多次,最后一次才是页面加载完毕。可以通过参数是否根浏览器接口来判断是否最后一次。

15,978

社区成员

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

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