永发信息网

怎么动态设置slider的范围

答案:3  悬赏:0  手机版
解决时间 2021-02-15 03:16
  • 提问者网友:最美的风景
  • 2021-02-14 08:59
我想在OpeningFcn(hObject, eventdata, handles, varargin)函数,即GUI开始处设置SLIDER的取值范围而不是通过属性框设置。。。请问下能实现吗。。我这样做好像不行set(handles.slider_zk,'Min',1,'Max',200);请高手指教。。
最佳答案
  • 五星知识达人网友:掌灯师
  • 2021-02-14 10:00
Value初始值您也得设置一下[默认Value为0,当您将slider范围设为 1 200 时,此时0不在该范围里面会导致slider无法创建],因为value必须在min,max之间 slider才可以创建。。O(∩_∩)O~
全部回答
  • 1楼网友:渊鱼
  • 2021-02-14 12:29
您好,很高兴为您解答。 在mfc中滑动条(csliderctrl)是个常用的控件,用法如下: 主要要方法有: 1、设置、取得滑动范围:   void setrange( int nmin, int nmax, bool bredraw = false );  void getrange( int& nmin, int& nmax ) const; 2、设置、取得按下左右箭头滑动间隔:  int setlinesize( int nsize );  int getlinesize( ) const; 3、设置、取得按下pgup、pgdown时滑动间隔:   int setpagesize( int nsize );  int getpagesize( ) const; 4、设置、取得滑块位置:  void setpos( int npos );  int getpos( ) const; 5、设置滑动条刻度的频度:  void setticfreq( int nfreq ); 实例: 在对话框中放一个slider控件,添加相应的ctrl型变量为m_slider。在对话框初始化函数oninitdialog()中添加:   bool cdlgsetup::oninitdialog() { cdialog::oninitdialog();  // todo: add extra initialization here  m_slider.setrang(0,100);//设置滑动范围  m_slider.setticfreq(10);//每10个单位画一刻度 return true;  // return true unless you set the focus to a control               // exception: ocx property pages should return false}  slider控件本身并没有响应滑动的消息函数,但可以通过主窗体的onhscroll()响应。在类向导中为对话框添加wm_hscroll消息,在响应函数中添加:  void cdlgsetup::onhscroll(uint nsbcode, uint npos, cscrollbar* pscrollbar)  {  // todo: add your message handler code here and/or call default  csliderctrl   *pslidctrl=(csliderctrl*)getdlgitem(idc_slider1);  m_int=pslidctrlhue->getpos();//取得当前位置值     cdialog::onhscroll(nsbcode, npos, pscrollbar); }//m_int 即为当前滑块的值。 如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】 希望我的回答对您有所帮助,望采纳!                                                                                                                             ~ o(∩_∩)o~
  • 2楼网友:空山清雨
  • 2021-02-14 11:23
set(handles.slider_zk,'Min',1,'Max',200);没有问题呀,这样就是将最大最小值设置为200和1呀,您在试试看看
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯