📄 subject_21186.htm
字号:
<p>
序号:21186 发表者:gdfgd 发表日期:2002-11-14 15:38:04
<br>主题:如何让CSliderCtrl上面的那个滑动点大一点?
<br>内容:默认的那个小块太小了,鼠标都很难捉住!<BR>把拖动条拉大的话很难看,我现在要滑动槽还是那么<BR>细,但拖的东西大一点,怎么弄?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:徐景周 回复日期:2002-11-14 17:16:30
<br>内容: 滑动条控制(Slider Control)也叫轨道条控制,其主要是用一个带有轨道和滑标的小窗口以及窗口上的刻度,来让用户选择一个离散数据或一个连续的数值区间。通过鼠标或键盘来进行数据的选择操作,这在WIN98/95中的很多应用程序中都可以看到,如控制面板中的鼠标等,滑动条既可以是水平方式的也可以是垂直方式的。滑动条控制的风格如下:<BR> TBS_HORZ 滑动条是水平方向的<BR> TBS_VERT 滑动条是垂直方向的<BR> TBS_LEFT 滑动条位于窗口左侧<BR> TBS_RIGHT 滑动条位于窗口右侧<BR> TBS_TOP 滑动条位于窗口顶部<BR> TBS_BOTTOM 滑动条位于窗口底部<BR> TBS_BOTH 滑动条位于窗口两侧<BR> TBS_AUTOTICKS滑动条具有刻度,默认<BR> TBS_NOTICKS 滑动条不具有刻度<BR> 滑动条的刻度条在每一个数值位置显示一个刻度标记,如果在滑动条上显示某一数值选择区间,则应使用风格TBS_ENABLESELRANGE,此时选择区间两个不再是刻度标记,而是一个小的三角形符号。另外,使用风格TBS_NOTHUMB会使滑标消隐起来。<BR> 滑动条控制在MFC类库中被封装为CSliderCtrl控制,其主要操作是设置刻度范围、绘制刻度标记、设置选择范围和当前滑标位置等。当用户进行交互操作时,滑动条控制将向其父窗口发送消息WM_HSCROLL,所以在应用程序中应重载父窗口的OnHScroll()成员函数,以便对消息进行正确处理系统发送的通知代码、滑标位置和指向CSliderCtrl对象的指针等。由于考虑到和水平卷动杆公用同一个成员函数,OnHScroll()函数参数表中的指针变量被定义为CScrollBar*类型,由于实际上消息是由滑动条产生的,所以在程序中必须把这个指针变量强制转换为CSliderCtrl*类型。滑动条和卷动杆的消息代码和含义都非常类似如TB_BOTTOM等,所以这种处理方法比较合理。SetRange()函数用来设置范围,SetPos()函数用来设置当前位置。<BR> (二)滑动条控制的对象结构<BR> 滑动条控制的建立方法<BR> CsliderCtrl &SliderCtrl 建立滑动条控制对象结构<BR> Create 建立滑动条控制对象并绑定对象<BR> 滑动条控制类CSliderCtrl::Create的调用格式如下:<BR> BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );<BR> 其中参数dwStyle用来确定滑动条控制风格;参数rect用来确定滑动条控制的大小和位置;参数pParentWnd用来确定滑动条控制的父窗口指针;参数nID用来确定滑动条控制的控制符ID值。<BR> 2、滑动条控制的类属性<BR> 滑动条控制对象的类属性包括取得滑动条大小GetLineSize、设置滑动条大小SetLineSize、取得滑动条页大小GetPageSize、设置滑动条页大小SetPageSize、取得滑动条最大位置GetRangeMax、取得滑动条最小位置GetRangeMin、取得滑动条范围GetRange、设置滑块最小位置SetRangeMin、设置滑块最大位置SetRangeMax、设置滑动条范围SetRange、取得滑块当前位置GetSelection、设置滑块当前位置SetSelection、取得滑动条当前位置GetPos和设置滑动条当前位置SetPos等。<BR> 3、滑动条控制的操作方法<BR> 滑动条控制的操作方法包括清除滑动条当前选择ClearSel、验证滑动条当前位置是否在最大最小位置之间VerifyPos和清除当前刻度标志ClearTics。<BR>滑动条控制的应用技巧示例<BR> 1、利用应用程序向导AppWizard生成基于对象框的应用程序CSlidDlg;<BR> 2、在对话框中设置滑动条控制,其ID为IDC_SLIDER;<BR> 3、在对话框初始代码中增加控制的范围和位置:<BR> (1)在SlidDlg.h中设置数据成员,用来表示滑动条的当前值:<BR>//SlidDlg.h<BR>class CSlidDlg:public Cdialog<BR>{ ......//其它代码<BR>public:<BR>int m_nCur;<BR>......//其它代码<BR>}<BR> (2)在SlidDlg.cpp中设置初始状态<BR>BOOL CSlidDlg::OnInitDialog()<BR>{ Cdialog::OnInitDialog();<BR>......//其它代码<BR>//TODO:Add extra initialization here<BR>CSliderCtrl *pSlidCtrl=(CSliderCtrl*)GetDlgItem(IDC_SLLIDER);<BR>pSlidCtrl->SetRange(1,5,TRUE);//设置滑动条范围<BR>pSlidCtrl->SetPos(2);//设置滑动条位置<BR>......//其它代码<BR>return TRUE;<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:gdfgd 回复日期:2002-11-14 17:58:40
<br>内容:没有我要的答案!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:徐景周 回复日期:2002-11-15 14:21:15
<br>内容:http://www.codeproject.com/miscctrl/transparentslider.asp
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -