如何处理跟踪条通知消息

跟踪条通过向父窗口发送 WM_HSCROLLWM_VSCROLL 消息来通知父窗口的用户操作。

需要了解的事项

技术

先决条件

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

说明

处理跟踪条通知消息

以下代码示例是当跟踪条的父窗口收到 WM_HSCROLL 消息时调用的函数。 此示例中的跟踪条采用了 TBS_ENABLESELRANGE 样式。 将滑块的位置与选择范围进行比较,并在必要时将滑块移动到选择范围的起始或终止位置。

// TBNotifications - handles trackbar notifications received 
// in the wParam parameter of WM_HSCROLL. This function simply 
// ensures that the slider remains within the selection range. 

VOID WINAPI TBNotifications( 
    WPARAM wParam,  // wParam of WM_HSCROLL message 
    HWND hwndTrack, // handle of trackbar window 
    UINT iSelMin,   // minimum value of trackbar selection 
    UINT iSelMax)   // maximum value of trackbar selection 
    { 
    DWORD dwPos;    // current position of slider 

    switch (LOWORD(wParam)) { 
    
        case TB_ENDTRACK:
          
            dwPos = SendMessage(hwndTrack, TBM_GETPOS, 0, 0); 
            
            if (dwPos > iSelMax) 
                SendMessage(hwndTrack, TBM_SETPOS, 
                    (WPARAM) TRUE,       // redraw flag 
                    (LPARAM) iSelMax); 
                    
            else if (dwPos < iSelMin) 
                SendMessage(hwndTrack, TBM_SETPOS, 
                    (WPARAM) TRUE,       // redraw flag 
                    (LPARAM) iSelMin); 
            
            break; 

        default: 
        
            break; 
        } 
} 

注解

包含 TBS_VERT 样式跟踪条的对话框可在收到 WM_VSCROLL 消息时使用此函数。

使用跟踪条控件