1

我有一个有效的IHTMLElement对象,它指向 IE9 中的图像。图像数据最近通过IDirectDrawSurface更新。我正在尝试找到一种方法来强制 IE9 在更新图像数据后重新绘制 DOM 中的图像。任何人都可以指导我强制重新绘制已在此 fasion 中更新的图像的方法吗?

我尝试过的方法:

HRESULT ret = pElement->get_style(&pStyle);
pStyle->put_visibility(L"hidden");
pStyle->put_visibility(L"visible");
// Or
pStyle->put_display(L"none");
pStyle->put_display(L"block");

感谢您的宝贵时间,任何提示将不胜感激。

-将要

4

1 回答 1

1

您是否尝试过重置元素的 src?据我所知,如果您设置了已经存在的相同 src,IE 将不会做任何事情,但看起来它可以被欺骗;

    IHTMLImgElement pImg;
    m_pElement->QueryInterface(IID_IHTMLImgElement, (void**)(&pImg));
    _bstr_t bstrOriginalSrc;
    pImg->get_src(bstrOriginalSrc.GetAddress());
    pImg->put_src(L""); //Trick to avoid setting the same src as already present
    pImg->put_src(bstrOriginalSrc);
于 2012-01-27T15:35:26.450 回答