返回列表 发帖

[原创] Slider(滑动条)实时显示例子

本帖最后由 风行者 于 2011-6-4 09:33 编辑

刚好用到,搜索论坛居然没搜到相关例子,后来查msdn解决
方便以后查看,需要的就拿去吧,代码如下:


  1. Global Const $WM_HSCROLL = 0x0114

  2. $Form1 = GUICreate("滑动条实时显示", 314, 120, 192, 124)

  3. $Label1 = GUICtrlCreateLabel("当前数值:50", 16, 24, 131, 28)

  4. GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")

  5. GUICtrlSetColor(-1, 0xFF0000)

  6. $Slider1 = GUICtrlCreateSlider(8, 72, 297, 33)

  7. GUICtrlSetLimit(-1,100,0)


  8. GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL")


  9.  



  10.  

  11. Func WM_HSCROLL($Hwnd, $iMsg, $Wparam, $iLparam)

  12.         $nNotifyCode = BitShift($Wparam, 16)  ;高位为控件标识

  13.         $nID = BitAND($Wparam, 0x000FFFF)   ;低位为数值

  14.         Switch $nID

  15.                 Case $Slider1

  16.                         GUICtrlSetData($Label1, "当前数值:" &$nNotifyCode)

  17.         EndSwitch

  18. EndFunc   ;==>WM_HSCROLL

复制代码 高亮切换
附件: 您需要登录才可以下载或查看附件。没有帐号?加入

我先收下了..以后应该用的着...谢谢楼主提供了

TOP

貌似没有按住时实时显示、点刻度尺也没变化~ 稍稍改了下
  1. Global Const $WM_HSCROLL = 0x0114

  2. GUICreate("滑动条实时显示", 314, 120)
  3. $Label1 = GUICtrlCreateLabel('50', 16, 24, 131, 28)
  4. GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
  5. GUICtrlSetColor(-1, 0xFF0000)
  6. $Slider1 = GUICtrlCreateSlider(8, 72, 297, 33)
  7. GUICtrlSetLimit(-1, 100, 0)
  8. $vS = 50
  9. GUICtrlSetData(-1, $vS)

  10. GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL")
  11. GUISetState()

  12. Do
  13. Until GUIGetMsg() = -3

  14. Func WM_HSCROLL($Hwnd, $iMsg, $Wparam, $iLparam)
  15.         Switch BitAND($Wparam, 0x000FFFF)
  16.                 Case 5
  17.                         $vS = BitShift($Wparam, 16)
  18.                         GUICtrlSetData($Label1, $vS)
  19.                 Case 2, 3
  20.                         GUICtrlSetData($Label1, GUICtrlRead($Slider1))
  21.         EndSwitch
  22. EndFunc   ;==>WM_HSCROLL
复制代码
1

评分人数

  • 风行者

请勿私信提问,有问题请发帖。

TOP

学习了,谢谢lz分享

TOP

楼主是缘鸟的管理员把

TOP

在官网有,不过不太好搜索,感谢AFAN提供的例子

TOP

向楼主源码精神致敬

TOP

路过留名,以后备用,如果能把两者功能合一就更强大了

TOP

楼主的确实有些问题:不是实时显示, 只有拖动停止后才会显示.
afan 大侠的虽然实时显示了, 但是并没有判断是哪个Slider控件的消息, 这样如果一个界面有多个Slider控件, 就会出问题.
正好我用到这个, 顺便把我改动后的发出来.
  1. Global Const $WM_HSCROLL = 0x0114
  2. Global $Slider[2], $hSlider[2], $Label[2]

  3. GUICreate('滑动条实时显示', 350, 120)

  4. $Slider[0] = GUICtrlCreateSlider(8, 20, 297, 33)
  5. $hSlider[0] = GUICtrlGetHandle(-1)
  6. GUICtrlSetLimit(-1, 100, 0)
  7. $Label[0] = GUICtrlCreateLabel('0', 313, 24, 100, 28)
  8. GUICtrlSetFont(-1, 16, 800)

  9. $Slider[1] = GUICtrlCreateSlider(8, 72, 297, 33)
  10. $hSlider[1] = GUICtrlGetHandle(-1)
  11. GUICtrlSetLimit(-1, 100, 0)
  12. $Label[1] = GUICtrlCreateLabel('0', 313, 75, 100, 28)
  13. GUICtrlSetFont(-1, 16, 800)

  14. GUIRegisterMsg($WM_HSCROLL, 'WM_HSCROLL')
  15. GUISetState()

  16. Do
  17. Until GUIGetMsg() = -3

  18. Func WM_HSCROLL($Hwnd, $Msg, $Wparam, $Lparam)
  19.         Switch $Lparam
  20.                 Case $hSlider[0]
  21.                         GUICtrlSetData($Label[0], GUICtrlRead($Slider[0]))
  22.                 Case $hSlider[1]
  23.                         GUICtrlSetData($Label[1], GUICtrlRead($Slider[1]))
  24.         EndSwitch
  25. EndFunc   ;==>WM_HSCROLL
复制代码
1

评分人数

这, 就是生活.

TOP

受教了 看了你们的代码 又让我学到了window消息

TOP

学习一下,论坛越发的好

TOP

先收下了,很好的例子!

TOP

呵收藏着了,不错的东西

TOP

利害啊!!!学习了

TOP

谢谢共享,支持楼主

TOP

返回列表