滑块通知消息
滑块控件通过发送父级 WM_HSCROLL 或 WM_VSCROLL 消息将用户操作通知给其父窗口,具体取决于滑块控件的方向。 要处理这些消息,请将 WM_HSCROLL 和 WM_VSCROLL 消息的处理程序添加到父窗口。 将向 OnHScroll 和 OnVScroll 成员函数传递通知代码、滑块位置和指向 CSliderCtrl 对象的指针。 请注意,即使指针指向 CSliderCtrl
对象,指针的类型也是 CScrollBar *
。 如果需要操作滑块控件,可能需要转换此指针的类型。
滑块控件不使用滚动条通知代码,而是发送一组不同的通知代码。 仅当用户使用键盘与滑块控件交互时,滑块控件才会发送 TB_BOTTOM、TB_LINEDOWN、TB_LINEUP 和 TB_TOP 通知代码。 仅当用户使用鼠标时,才会发送 TB_THUMBPOSITION 和 TB_THUMBTRACK 通知消息。 在这两种情况下,都会发送 TB_ENDTRACK、TB_PAGEDOWN 和 TB_PAGEUP 通知代码。
下表列出了滑块控件通知消息和导致发送通知的事件(虚拟键代码或鼠标事件)。 (有关标准虚拟键代码的列表,请参见 Winuser.h。)
通知消息 | 导致发送通知的事件 |
---|---|
TB_BOTTOM | VK_END |
TB_ENDTRACK | WM_KEYUP(用户发布了发送相关虚拟键代码的键) |
TB_LINEDOWN | VK_RIGHT 或 VK_DOWN |
TB_LINEUP | VK_LEFT 或 VK_UP |
TB_PAGEDOWN | VK_NEXT(用户单击了滑块下方或右侧的通道) |
TB_PAGEUP | VK_NEXT(用户单击了滑块上方或左侧的通道) |
TB_THUMBPOSITION | WM_LBUTTONUP,采用 TB_THUMBTRACK 通知消息 |
TB_THUMBTRACK | 滑块移动(用户拖动了滑块) |
TB_TOP | VK_HOME |