Как перерисовать / перекрасить элемент IHTMLE, указывающий на элемент изображения в DOM в IE9? - PullRequest
1 голос
/ 12 апреля 2011

У меня есть действительный IHTMLElement объект, который указывает на изображение в IE9.Данные изображения были недавно обновлены через IDirectDrawSurface .Я пытаюсь найти способ заставить IE9 перерисовать изображение в DOM после обновления данных изображения.Может ли кто-нибудь, пожалуйста, направить меня к методу принудительного перекрашивания изображения, которое было обновлено в этом стиле?

Подходы, которые я пробовал:

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");

Спасибо за ваше времяЛюбые советы будут с благодарностью.

-Will

1 Ответ

1 голос
/ 27 января 2012

Вы пытались сбросить src элемента?Из того, что я вижу, IE ничего не сделает, если вы установите тот же src, который уже присутствует, но выглядит так, что его можно обмануть;

    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);
...