滑块控件通过发送父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_PRIOR(用户单击了滑块上方或左侧的通道) |
TB_THUMBPOSITION | 遵循TB_THUMBTRACK通知消息WM_LBUTTONUP |
TB_THUMBTRACK | 滑块移动(用户拖动滑块) |
TB_TOP | VK_HOME |