滑动条的使用

{

 SCROLLINFO si;
 si.cbSize = sizeof(SCROLLINFO);
 si.fMask = SIF_PAGE | SIF_RANGE;
 si.nPage = ;//页面的大小
 si.nMin = 0;// 滑动条最小位置
 si.nMax = ;// 滑动条最大位置
 SetScrollInfo(SB_HORZ, &si, TRUE);

}

 

/************************************************************************/
// 设置滑动条的位置
// nBar 滑动条编号SB_HORZ或者SB_VERT
// nPos 滑动条需要设置成的位置
// bRedraw 是否进行重绘
// 返回值 是否设置成功
/************************************************************************/

BOOL CXXXX::SetScrollPos32(int nBar, int nPos, BOOL bRedraw /* = TRUE */)
{
 SCROLLINFO si;
 si.cbSize = sizeof(SCROLLINFO);
 si.fMask  = SIF_POS;
 si.nPos   = nPos;
 return SetScrollInfo(nBar, &si, bRedraw);
}


/************************************************************************/
// 获取滑动条的位置
// nBar 滑动条编号SB_HORZ或者SB_VERT
// bGetTrackPos 是否是否进行滑动条拖拽
// 返回值 滑动条当前位置
/************************************************************************/

int CXXXX::GetScrollPos32(int nBar, BOOL bGetTrackPos /* = FALSE */)
{
 SCROLLINFO si;
 si.cbSize = sizeof(SCROLLINFO);
 
 if (bGetTrackPos)
 {
  if (GetScrollInfo(nBar, &si, SIF_TRACKPOS))
   return si.nTrackPos;
 }
 else
 {
  if (GetScrollInfo(nBar, &si, SIF_POS))
   return si.nPos;
 }

 return 0;
}

### lvgl 滑动条使用教程 滑动条(`lv_slider`)是一个常见的UI组件,在图形界面设计中用于让用户通过拖拽旋钮来调整数值。在LVGL库中,滑动条不仅支持水平方向也支持垂直方向的操作[^1]。 #### 创建滑动条实例 创建一个基本的滑动条可以通过调用 `lv_slider_create()` 函数完成: ```c // 创建父容器 (假设已经初始化好屏幕) lv_obj_t * parent = lv_scr_act(); // 在指定父级上创建一个新的滑动条对象 lv_obj_t * slider = lv_slider_create(parent); ``` #### 设置滑动条属性 为了使滑动条更符合特定需求,可以对其进行一系列配置操作,比如改变其外观样式、设定取值范围以及响应事件等。 ##### 设定最小最大值 默认情况下,滑动条的取值区间是从0到100之间变化。如果希望自定义这个范围,则可利用如下函数: ```c lv_slider_set_range(slider, MIN_VALUE, MAX_VALUE); // 将MIN_VALUE替换为你想要设置的最小值,MAX_VALUE为最大值 ``` ##### 修改初始位置/当前值 要更改滑动条指针所指向的位置即当前选中的值,应该这样写代码: ```c lv_slider_set_value(slider, VALUE_TO_SET, LV_ANIM_ON /* 或者 LV_ANIM_OFF */ ); ``` 这里第二个参数是要设成的具体数值;第三个参数决定是否启用动画效果过渡至新状态。 ##### 添加回调处理逻辑 当用户交互引起滑块移动时触发相应的动作,可通过绑定事件监听器实现这一功能: ```c static void event_handler(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); if(code == LV_EVENT_VALUE_CHANGED){ printf("Slider value: %d\n", lv_slider_get_value(lv_event_get_target(e))); } } lv_obj_add_event_cb(slider, event_handler, LV_EVENT_ALL, NULL); ``` 上述片段展示了如何捕捉并打印出每次变动后的最新读数。 #### 定制化显示风格 对于追求更高层次视觉体验的应用场景而言,还可以深入定制滑轨的颜色、宽度乃至整个控件的整体布局等方面的内容。这部分内容涉及到较为复杂的CSS类比概念——主题和样式表机制[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值