去除CHtmlView的滚动条问题


网上有很多去针对如何去除CHtmlView滚动条的回答,其中我最看好的是:

实现IDocHostUIHandler接口,并且在GetHostInfo方法中填充pInfo->dwFlags字段,加上DOCHOSTUIFLAG_SCROLL_NO

虽然上面已将说的很明白了,但是当我去实现的时候发现无从下手哇。经过好一番折腾终于找到了点头绪。我现在用的是vs2008,当我查看afxhtml.h中的CHtmlView类中有一个函数:

virtual HRESULT OnGetHostInfo(DOCHOSTUIINFO *pInfo);

发现重载这个函数里面可以实现很多功能,其中就包括去掉滚动条。下面是实现步骤的简单介绍:

在你继承CHtmlView的类中重写OnGetHostInfo函数。

1. 在.h中添加加粗的部分:

class CYourclass: public CHtmlView

{

......

virtual HRESULT OnGetHostInfo(DOCHOSTUIINFO *pInfo);

.....

}

2. 在cpp中添加下面的代码:(加粗的部分改成你自己对应的)

HRESULT CYourclass::OnGetHostInfo(DOCHOSTUIINFO *pInfo)
{
pInfo->dwFlags |= DOCHOSTUIFLAG_SCROLL_NO | DOCHOSTUIFLAG_NO3DBORDER;
return S_OK;
}

3. 运行,测试Ok~~


文章来自:http://hi.baidu.com/mixsedgssubblrq/item/7dbbf3f22cb81e54c9f337fd

你可能感兴趣的:(去除CHtmlView的滚动条问题)