//用 plus 控件创建滑尺控件 import win.ui; /*DSG{{*/ var winform = win.form(text="plus 控件 - 实现滑尺控件";right=757;bottom=467;bgcolor=0xF5F5F5) winform.add( trackbar={cls="plus";left=225;top=266;right=667;bottom=281;bgcolor=0xD9AB23;border={radius=-1};foreRight=15;forecolor=0x1C77FF;paddingBottom=5;paddingTop=5;z=1} ) /*}}*/ //创建滑尺控件教程: doc://library-guide/std/win/ui/ctrl/plus.md#trackbar //设置滑尺范围,切换到滑尺模式,默认自动配置滑块滑道大小,随机选择预设配色方案 winform.trackbar.setTrackbarRange(1,100); //使用 progressPos 属性获取或修改滑块当前位置 winform.trackbar.progressPos = 1; //设置外观 winform.trackbar.skin({ background={ default=0xFF23ABD9; }; foreground={ default=0xFFFF771C; hover=0xFFFF6600; }; color={ default=0xFFFF5C00; hover=0xFFFF6600; } }) //可选用下面的代码添加提示控件,不需要可删除 import win.ui.tooltip; var tooltipCtrl = win.ui.tooltip.tracking(winform); var toolinfo = tooltipCtrl.addTrackingTool(winform.trackbar); //鼠标放开关闭提示 winform.trackbar.onMouseUp = function(wParam,lParam){ toolinfo.trackPopup(false); } //鼠标按下拖动时在提示控件中显示滑块当前位置 winform.trackbar.onPosChanged = function( pos,thumbTrack ){ if(thumbTrack){ var x,_ = win.getMessagePos(); var _,y,cx,cy = winform.trackbar.getPos(true) /* 注意刻度最小单位总是 1, 如果要改为其他单位,只要修改显示数值就可以, 例如下面显示的 pos 修除以 10,对于用户来说就实现了最小单位 0.1 相同的效果。 */ toolinfo.setText(pos / 10).trackPopup(true,x,y+cy); } } winform.show(); win.loopMessage();