VC++之Scroll Bar使用技巧
:
BOOL CEdit::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT&
rect, CWnd* pParentWnd, UINT nID = 0xffff
);
其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对滚动条指明专门的风格。
SBS_VERT
风格将创建一个垂直的滚动条。
SBS_HORZ 风格将创建一个水平的滚动条。
在创建滚动条后需要调用void
SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE
)设置滚动范围,
int GetScrollPos( )/int SetScrollPos( )用来得到和设置当前滚动条的位置。
void ShowScrollBar( BOOL bShow = TRUE );用来显示/隐藏滚动条。
BOOL EnableScrollBar( UINT nArrowFlags = ESB_ENABLE_BOTH
)用来设置滚动条上箭头是否为允许状态。nArrowFlags可取以下值:
ESB_ENABLE_BOTH
两个箭头都为允许状态
ESB_DISABLE_LTUP 上/左箭头为禁止状态
ESB_DISABLE_RTDN
下/右箭头为禁止状态
ESB_DISABLE_BOTH
两个箭头都为禁止状态
如果需要在滚动条位置被改变时得到通知,需要在父窗口中定义对消息WM_VSCROLL/WM_HSCROLL的映射。方法为在父窗口类中重载afx_msg
void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )/afx_msg void
OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )
所使用的消息映射宏为:ON_WM_VSCROLL( ),ON_WM_HSCROLL(
),在映射宏中不需要指明滚动条的ID,因为所有滚动条的滚动消息都由同样的函数处理。在OnHScroll/OnVScroll的第三个参数会指明当前滚动条的指针。第一个参数表示滚动条上发生的动作,可取以下值:
SB_TOP/SB_BOTTOM
已滚动到顶/底部
SB_LINEUP/SB_LINEDOWN 向上/下滚动一行
SB_PAGEDOWN/SB_PAGEUP
向上/下滚动一页
SB_THUMBPOSITION/SB_THUMBTRACK
滚动条拖动到某一位置,参数nPos指明当前位置(参数nPos在其它的情况下是无效的)
SB_ENDSCROLL
滚动条拖动完成(用户松开鼠标)
小编给大家提供教育资讯,培训问答等内容,为不影响您的学业,来校区前请先电话咨询,免费咨询电话:400-998-6158