И снова CHtmlView
От: Flycat  
Дата: 12.06.03 13:22
Оценка:
Доброго времени суток!
Уже учитался здесь по поводу этого класса.
У меня задача динамически изменять html содержимое этого окна.
В настоящий момент пользую такой способ

bool CDocHtmlView::Write( CString &htmlStr )
{
if( !m_pHtmlDoc2 )
return false;
BSTR bstr = htmlStr.AllocSysString();

HRESULT hresult = S_OK;
//put content to body element

SAFEARRAY *sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);
if(sfArray)
{
VARIANT *param;
hresult = SafeArrayAccessData(sfArray, (LPVOID*)&param);
param->vt = VT_BSTR;
param->bstrVal = bstr;
hresult = SafeArrayUnaccessData(sfArray);
hresult = m_pHtmlDoc2->write(sfArray);
SafeArrayDestroy(sfArray);
hresult = m_pHtmlDoc2->close();
}
SysFreeString(bstr);
}

но вроде как есть способ проще

...
LPDISPATCH lpDispatch = GetHtmlDocument();
if( lpDispatch )
lpDispatch->QueryInterface( IID_IHTMLDocument2, (void**)&m_pHtmlDoc2 );
//get html document from IDispatch
//get body element
if( !m_pHtmlDoc2 || !SUCCEEDED( m_pHtmlDoc2->get_body( &m_pBodyElement) ) )
{
m_pBodyElement = NULL;
if( m_pHtmlDoc2 )
m_pHtmlDoc2->Release();
m_pHtmlDoc2 = NULL;
}
if( m_pBodyElement )
return SUCCEEDED( m_pBodyElement->put_innerHTML( pbBody ) );
...
И все вроде хорошо и текст рисует и картинки выводит НО!!!
Не реагирует на изменение фона и цвета шрифта. Белый фон, черный текст и усе

Вопрос: что я не так делаю?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.