CDHtmlDialog默认不显示滚动条,查看CDHtmlDialog::Initialize实现代码,发现如下代码:
SetHostFlags(DOCHOSTUIFLAG_NO3DBORDER | DOCHOSTUIFLAG_SCROLL_NO);
如果要显示滚动条,可以重写OnInitDialog函数增加如下代码:
SetHostFlags(DOCHOSTUIFLAG_FLAT_SCROLLBAR);
注意:这条语句必须在CDHtmlDialog::OnInitDialog()之前调用,滚动条会一直显示。
如果要根据窗口大小动态显示滚动条,则可以重写OnNavigateComplete函数,增加如下代码:
CComPtr<IHTMLElement> spElement;
spDocument->get_body(&spElement);
if (NULL == spElement)
return;
CComPtr<IHTMLBodyElement> spBodyElement;
spElement->QueryInterface(__uuidof(IHTMLBodyElement), (void**)&spBodyElement);
if (NULL == spBodyElement)
return;
spBodyElement->put_scroll(_bstr_t(_T("auto")));