来问各位大侠一个有关问题!关于设计一个播放器的进度条的
来问各位大侠一个问题!关于设计一个播放器的进度条的
素材啥的都有了,但是我要怎么知道拖动的消息?
也就是这样的控件都会发生啥信息?
有个例子最好了!给思路也行。
需要补货鼠标的消息吗?
------解决方案--------------------
------解决方案--------------------
楼上的是mfc的,如果是win32的,你可以自己绘制一个
1、先创建一个Timer
case WM_CREATE:
SetTimer(hWnd, 0, 1000, NULL);
break;
2、处理这个定时器的消息
case WM_TIMER:
if (pos < 4000)
{
pos+=10;
InvalidateRect(hWnd, NULL, TRUE);
}
else
{
KillTimer(hWnd, 0);
}
3、case WM_PAINT:里面绘制进度条
当然你可以根据鼠标的坐标去设置
------解决方案--------------------
响应滚动条控件的WM_LButtonDown消息,然后里面获取进度来控制
------解决方案--------------------
有源码
链接
素材啥的都有了,但是我要怎么知道拖动的消息?
也就是这样的控件都会发生啥信息?
有个例子最好了!给思路也行。
需要补货鼠标的消息吗?
------解决方案--------------------
void MySlider::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CSliderCtrl::OnLButtonDown(nFlags, point);
CRect rectClient,rectChannel;
GetClientRect(rectClient);
GetChannelRect(rectChannel);
int nMax = 0;
int nMin = 0;
GetRange(nMin,nMax);
int nPos =
(nMax - nMin)*(point.x - rectClient.left - rectChannel.left)/(rectChannel.right - rectChannel.left);
SetPos(nPos);
}
------解决方案--------------------
楼上的是mfc的,如果是win32的,你可以自己绘制一个
1、先创建一个Timer
case WM_CREATE:
SetTimer(hWnd, 0, 1000, NULL);
break;
2、处理这个定时器的消息
case WM_TIMER:
if (pos < 4000)
{
pos+=10;
InvalidateRect(hWnd, NULL, TRUE);
}
else
{
KillTimer(hWnd, 0);
}
3、case WM_PAINT:里面绘制进度条
当然你可以根据鼠标的坐标去设置
------解决方案--------------------
响应滚动条控件的WM_LButtonDown消息,然后里面获取进度来控制
------解决方案--------------------
有源码
链接