CDHtmDialog 显示滚动条

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

来自:http://blog.csdn.net/mergerly/article/details/7358075

你可能感兴趣的:(CDHtmDialog 显示滚动条)