Events 进入\u通知\u范围与CSliderCtrl合作

Events 进入\u通知\u范围与CSliderCtrl合作,events,visual-c++,mfc,windows-controls,Events,Visual C++,Mfc,Windows Controls,我的windows窗体中有一个CSliderCtrl数组,我需要从中接收通知。我正在使用ON_NOTIFY_范围声明将滑块更新映射到相应的处理程序。我的问题是唯一一个通知我的事件是NM_RELEASEDCAPTURE事件。因此,我的代码如下所示: BEGIN_MESSAGE_MAP(CTheThingDlg, CDialogEx) ON_NOTIFY_RANGE(NM_RELEASEDCAPTURE, start_id, end_id, handler) END_MESSAGE_MAP()

我的windows窗体中有一个CSliderCtrl数组,我需要从中接收通知。我正在使用ON_NOTIFY_范围声明将滑块更新映射到相应的处理程序。我的问题是唯一一个通知我的事件是NM_RELEASEDCAPTURE事件。因此,我的代码如下所示:

BEGIN_MESSAGE_MAP(CTheThingDlg, CDialogEx)
   ON_NOTIFY_RANGE(NM_RELEASEDCAPTURE, start_id, end_id, handler)
END_MESSAGE_MAP()

void MyClass::handler(UINT p_id, NMHDR* p_notify_msg_ptr, LRESULT* p_result_ptr)
{
   //Do Stuff
}
我尝试过使用WM_H/VSCROLL、TB_THUMBTRACK、TB_LINEUP/DOWN和其他事件,但没有一个会通知我是否使用鼠标或键盘滚动。它们只是使用以下代码创建的简单水平滚动条:

slider_ctrl.Create(WS_CHILD | WS_VISIBLE | TBS_HORZ | TBS_BOTTOM | TBS_FIXEDLENGTH,
                   CRect(x1, y1, x2, y2),
                   this,
                   id);

给你的想法一分钱。

你需要处理WM\HSCROLL信息。TB_THUMBTRACK和其他TB通知不是消息,它们在nSBCode参数中传递给WM_HSCROLL消息处理程序

好的,所以我试着把WM_HSCROLL放入ON_NOTIFY_更改声明中,就像这样:ON_NOTIFY_范围(WM_HSCROLL,…),但它不起作用。如果我只是将WM_HSCROLL更改为NM_RELEASEDCAPTURE,我将获得该事件。这不应该有用吗。我在Windows7上。