我的程序是多文档的,从CScrollView继承而来,现在,在任何情况下,我都不要滚动条出现,如何实现?
那就改从CView继承
对,不要从CScrollView类继承
GZ
重载OnInitialUpdate,在里面调用
SetScrollSizes
让她的sizePage比sizeTotal还大,造成滚动条永远不会出现。
先得到滚动条
CScrollBar* GetScrollBarCtrl(
int nBar
) const;
然后替换滚动条的消息处理函数
LONG SetWindowLong(
HWND hWnd, // handle to window
int nIndex, // offset of value to set
LONG dwNewLong // new value
);
nIndex = GWL_WNDPROC (Sets a new address for the window procedure. )
dwNewLong为处理函数的地址
还可以试试这个简便方法:
void CYourScrollView::OnInitialUpdate()
{
ScrollView::OnInitialUpdate();
CSize size(0,0);//添加
SetScrollSizes(MM_TEXT,size);//添加,把滚动区域设置为最小,滚动条就不会出现了
//GetParentFrame()->RecalcLayout();//注释掉
//ResizeParentToFit();//注释掉
}
呵呵,看我的
CSX_TGISView *pGISView=(CSX_TGISView *)m_wndSplitter.GetPane( 0, 0 );
上面是我做的一个切分窗口,你可以按照你的要求该一下,CSX_TGISView是从ScrollView继承来的,下面的代码才是最重要的
::InitializeFlatSB(pGISView->GetSafeHwnd());
::FlatSB_EnableScrollBar(pGISView->GetSafeHwnd(),SB_BOTH,ESB_DISABLE_BOTH);
::FlatSB_ShowScrollBar(pGISView->GetSafeHwnd(),SB_BOTH,FALSE);