VC++之Scroll控件

翻译|其它|编辑:郝浩|2007-09-21 11:02:59.000|阅读 1682 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

Scroll Bar  一般不会单独使用,因为  SpinCtrl  可以取代滚动条的一部分作用,但是如果你需要自己生成派生窗口,滚动条还是会派上一些用场。创建一个滚动条可以使用成员函数:

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  
滚动条拖动完成(用户松开鼠标) 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP