У меня есть диалоговое окно MFC, где я добавил web browser control (который инкапсулирует Internet Explorer
двигателя.) Цель следующего кода (временно) удалить полосы прокрутки и границы окна от этого элемента управления (для вызова IViewObject::Draw.)Как скрыть полосы прокрутки и границы окна для управления веб-браузером (IE), который отображает разметку HTML5?
Так я:
//'m_browser' = is a web browser control of type `CExplorer1`
IDispatch* pHtmlDoc = m_browser.get_Document();
CComPtr<IHTMLDocument2> pHtmlDocument2;
pHtmlDoc->QueryInterface(IID_IHTMLDocument2, (void**)&pHtmlDocument2);
CComPtr<IHTMLElement> pBody;
pHtmlDocument2->get_body(&pBody);
CComPtr<IHTMLStyle> pStyle;
pBody->get_style(&pStyle);
//Remove borders
pStyle->put_borderStyle(CComBSTR("none"));
//Remove scrollbars
pBody->setAttribute(CComBSTR(L"scroll"), CComVariant(L"no"));
Этот подход работает, если я определить HTML, который отображается в веб-управления, как:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
, но если я определяю его как HTML5:
<!DOCTYPE HTML>
код выше ничего не делает.
Любая идея, что я должен изменить, чтобы она работала с разметкой HTML5?
Попробуйте добавить '' в '
' HTML. Помогает ли это? – Steeve@Steeve: Спасибо. Он решил эту проблему, но создал новые (не связанные). Можете ли вы объяснить, как именно этот параметр влияет на эти вызовы API? – c00000fd
как насчет вызова IHTMLStyle :: borderWidth с 0? –