连杆滑块C语言编程,怎么响应VC6.0下 滑块被拖动事件,C语言+API!

最近学习C语言,用C语言和window SDK

做一个音乐播放器,做到一个就遇到了问题。怎么用滑块控件控件音量,在网上搜了很多资源大多数都是讲在MFC下滑块的使用,纯SDK的基本上没有!下面我介绍一下我是怎么响应滑块拖动事件的:

滑块控件”和“滚动条”在使用上是有去别的,虽然使用他们都会触发

“WM_VSCROOL” 或者“WM_HCSROLL”消息。

1,滚动条可以通过 "SetScrollRange(....)" 来设置 滚动条的范围。但此API函数对滑块控件不起作用!

可以通过向滑块空间发送 “TBM_SETRANGE” 消息,可以通过调用SendMessage(hwndCtrl,

TMB_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 100)); 将滑块的 范围设置为

“0 到 100”, hwndCtrl为滑块的句柄,可以通过GetDlgItem(...)获取, WPARAM 为 TRUE or

FALSE 表示是否重绘, LPARAM为要设置的范围:地位为最小值,高位为最大值。

2,滚动条可以通过“SetScrollPos(....)”来时设置滑块的位置。同样此API函数不适用于滑块控件!通过向滑块控件发送

“TBM_SETPOS” 消息设置滑块的位置,WPARAM 和 LPARAM 可以查阅MSDN。

a4c26d1e5885305701be709a3d33442f.png

(这是在 commctrl.h

里定义的所有可以向 滑块控件发送的消息,请查阅msdn获取解释)

3,触动“滚动条”和“滑块控件”都会触发 “WM_HSCROLL”

消息(垂直的为“WM_VSCROLL”),但是通知吗是不一样的:

wParam

HIWORD是LOWORD做为SB_THUMBPOSITION或SB_THUMBTRACK滚动框的当前位置,否则,这个词不使用。

LOWORD做为指定一个滚动条值,指出用户的滚动要求。这个参数可以是下列值之一。

SB_PAGEDOWN 向下滚动一页

SB_LINEDOWN 向下滚动一行

SB_PAGEUP 向上滚动一页

SB_LINEUP 向上滚动一行

SB_TOP 滚动到顶端

SB_BOTTOM 滚动到底部

SB_THUMBPOSITION

用户有拖动滚动框 (滑块),并释放鼠标按钮。HIWORD 指示在拖动操作结束时

滚动框的位置。

SB_THUMBTRACK 用户正在拖动滚动框。直到用户释放鼠标按钮,反复发送此邮件。HIWORD 指示滚动

框已被拖动到的位置。

以下是滑块控件的通知码(即LOWORD(wParam)):

a4c26d1e5885305701be709a3d33442f.png

lParam

如果lParam参数等于0,就说明它是窗口滚动条;如果等于滚动条窗口句柄,就说明它是滚动条控件或者滑块控件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值