В IE 9 и IE 11 я наблюдаю, что 3D-граница всегда присутствует, если на странице есть <!DOCTYPE html>
.Нет абсолютно никакого способа отключить это с помощью CSS.Я попробовал это безуспешно:
html { margin:0px; padding:0px; border:0px; }
body { margin:0px; padding:10px; border:0px; }
Внимание: Эта проблема появляется, только если вы встраиваете Internet Explorer в проект C ++ (CHtmlView
).Но если вы откроете ту же веб-страницу во встроенном Internet Explorer в проекте .NET 4.0 (System.Windows.Forms.WebBrowser
), 3D-граница не появится.И если вы откроете ту же веб-страницу в самом Internet Explorer (iexplore.exe), 3D-граница также не появится.
Но я нашел простое решение, если у вас есть IE в проекте MFC.MFC уже реализует IDocHostUIHandler
, который необходим для этого.
Извлечение класса из CHtmlView
и перезапись OnGetHostInfo()
:
Заголовок:
class CMyHtmlView : public CHtmlView
{
protected:
virtual HRESULT OnGetHostInfo(DOCHOSTUIINFO *pInfo);
};
Реализация:
HRESULT CMyHtmlView::OnGetHostInfo(DOCHOSTUIINFO *pInfo)
{
HRESULT hr = CHtmlView::OnGetHostInfo(pInfo);
pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER;
return hr;
}
и тупая трехмерная граница исчезла!