如何限制滑块移动

“关于跟踪条控件”中所述,可以将轨道栏范围的一部分设置为选择范围。 选择范围的一个用途可能是限制滑块的移动,使整个范围的一些部分关闭限制。

需要了解的事项

技术

先决条件

  • C/C++
  • Windows用户界面编程

说明

限制滑块移动

以下示例代码通过重置滑块的位置来限制滑块移动,只要在所选范围之外移动滑块的位置。

case WM_HSCROLL:
    {
        HWND hTrackbar = GetDlgItem(hDlg, IDC_SLIDER1);
        
        if (hTrackbar == (HWND)lParam)
        {
            int newPos    = SendMessage(hTrackbar, TBM_GETPOS, 0, 0);
            int selStart  = SendMessage(hTrackbar, TBM_GETSELSTART, 0, 0);
            int selEnd    = SendMessage(hTrackbar, TBM_GETSELEND, 0, 0);
            
            if (newPos > selEnd)
            {
                SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)selEnd);
            }
            
            else if (newPos < selStart)
            {
                SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)selStart);
            }
        }
        
        break;
    }

注解

此代码片段是对话框窗口过程的一部分。

使用 Trackbar 控件