我基于CDHtmlDialog做的一个类,里面使用Navigate加载一个htm页面
通过htm上的按钮改变了htm上图片的内容
然后:PostMessage(WM_KEYDOWN, VK_F5, 0);
界面上看到有闪动,像是刷新了,但是界面上那个图片却没更新
我用IE打开那个htm,发现里面的图却是新的,点F5,也都正常
为什么我的程序中,即使按了F5,也只是看到界面闪了一下,没看到有图片被更新呢?而且貌似这是个概率性问题。

解决方案 »

  1.   

    写个刷新页面的Js函数,比如MyRefresh
    )<script>window.location.reload(true);</script>
    然后用 m_HtmlCtrl.CallJScript2调用,实现刷新
      

  2.   

    CallJScript2
    这是什么函数,没见过楼上的意思是在htm里面加函数刷新吗?但是问题是,我IE打开htm,里面的内容的确已经刷新了啊,问题是这个htm加载到我的界面上去才有问题
    编译环境:windows xp.   vc2003
      

  3.   

    静态的htm页面,里面有一个image的资源,给它一个路径"C:\1.bmp",去读一个bmp的图片
    这个htm上还有一个按钮,通过在 class CDialogIconView : public CDHtmlDialog 上响应消息,改变"C:\1.bmp"这个图片的内容,但是CDialogIconView却只有刷新时闪了一下的样子,图片都已经被改变了,但是在界面上却没反应出来。用IE打开这个htm都会发现图片的确改变了。
      

  4.   

    CDHtmlDialog有个刷新的函数啊,你调用一下它不就完了
      

  5.   

    我在界面上用手点键盘F5刷新都没用啊!我在对话框CDialog A中点按钮把CDialogIconView给domodal出来, CDialogIconView在初始化时执行:
    Navigate(_T("file:///") + theApp.m_strCFGTemp + _T("WinIconView.htm"));
    加载的一个htm。那我现在把CDialogIconView关掉,再次点CDialog A里面的按钮再打开CDialogIconView,也就是重新domodal了一次,那为什么新的窗口中看到的图片效果还是老的?跟用IE打开看到的不一致。
      

  6.   

    看看是不是你的IE更新设置有问题
    IE -- internet options -- general -- temporary internet files -- settings -- check for newer versions of stored pages: check: every visit to the page