- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
滑动条(Trackbar)
使用场景
初始控件
控件消息
示例代码
滑动条(Trackbar)
使用场景
-
音量控制
-
亮度调节
-
视频播放进度控制
-
任何需要用户在特定范围内选择值的场景
初始控件
- TBM_SETRANGE - 设置范围
- TBM_SETPOS - 设置位置
-
case WM_INITDIALOG: {HWND hTrackBar = GetDlgItem(hDlg, IDC_MYTRACKBAR);SendMessage(hTrackBar, TBM_SETRANGE, TRUE, MAKELPARAM(minRange, maxRange)); // 设置范围SendMessage(hTrackBar, TBM_SETPOS, TRUE, (LPARAM)initialPosition); // 设置初始位置return (INT_PTR)TRUE; }
控件消息
TBM_SETPOS
:设置滑块的当前位置。TBM_GETPOS
:获取滑块的当前位置。-
// 设置滑块的位置 SendMessage(hTrackBar, TBM_SETPOS, TRUE, (LPARAM)newPosition);// 获取滑块的位置 int pos = (int)SendMessage(hTrackBar, TBM_GETPOS, 0, 0);
示例代码
case WM_INITDIALOG:{// 初始环境INITCOMMONCONTROLSEX initComm = { 0 };initComm.dwSize = sizeof(INITCOMMONCONTROLSEX);initComm.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&initComm);// 初始控件HWND hTrackBar = GetDlgItem(hwnd, IDC_SLIDER1);SendMessage(hTrackBar, TBM_SETRANGE, TRUE, MAKELPARAM(0, 100));SendMessage(hTrackBar, TBM_SETPOS, TRUE, 20);return TRUE; }case WM_HSCROLL:{HWND hTrackBar = GetDlgItem(hwnd, IDC_SLIDER1);switch (LOWORD(wParam)){case TB_THUMBTRACK:{if ((HWND)lParam == hTrackBar){TCHAR szBuffer[0xFF] = { 0 };INT nPos = SendMessage(hTrackBar, TBM_GETPOS, 0, 0);wsprintf(szBuffer, TEXT("%d"), nPos);SetWindowText(GetDlgItem(hwnd, IDC_STATIC_TRACK), szBuffer);}break;}}return TRUE;}