原来是 CSliderCtrl 你拼写错了 相应WM_HSCROLL消息void C???::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { switch (nSBCode) { case SB_TOP: x = 0; break; case SB_BOTTOM: x = INT_MAX; break; case SB_LINEUP: x -= m_lineSize.cx; break; case SB_LINEDOWN: x += m_lineSize.cx; break; case SB_PAGEUP: x -= m_pageSize.cx; break; case SB_PAGEDOWN: x += m_pageSize.cx; break; case SB_THUMBTRACK: x = nPos; break; } //....... }
See This : A slider control notifies its parent window of user actions by sending the parent WM_HSCROLL messages. You can override the parent'sOnHScroll member function to handle these messages. This function will be passed a notification code, the position of the slider, and a pointer to theCSliderCtrl object. CSliderCtrl 向父窗口发送WM_HSCROLL消息 所以,在父窗口中添加了OnHScroll
switch (nSBCode) //动作 { case SB_TOP: MessageBox("到头了"); break; case SB_BOTTOM: MessageBox("到首了"); break; case SB_PAGEUP: MessageBox("后翻页"); break; case SB_PAGEDOWN: MessageBox("前翻页"); break; case SB_LINEUP: MessageBox("前进"); break; case SB_LINEDOWN: MessageBox("后退"); break; case SB_THUMBTRACK: MessageBox("拖动"); break; } //....... }
NOTIFY_HANDLER(IDC_SLIDER1, NM_RELEASEDCAPTURE, OnSlinderClick)
到msdn中去查消息吧NM_RELEASEDCAPTURE
相应WM_HSCROLL消息void C???::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
switch (nSBCode)
{
case SB_TOP:
x = 0;
break;
case SB_BOTTOM:
x = INT_MAX;
break;
case SB_LINEUP:
x -= m_lineSize.cx;
break;
case SB_LINEDOWN:
x += m_lineSize.cx;
break;
case SB_PAGEUP:
x -= m_pageSize.cx;
break;
case SB_PAGEDOWN:
x += m_pageSize.cx;
break;
case SB_THUMBTRACK:
x = nPos;
break;
}
//.......
}
NM_OUTOFMEMORY
NM_RELEASEDCAPTURE
NM_COSTOMDRAW
没有NM_HSROLL之类的消息 ????????
A slider control notifies its parent window of user actions by sending the parent WM_HSCROLL messages. You can override the parent'sOnHScroll member function to handle these messages. This function will be passed a notification code, the position of the slider, and a pointer to theCSliderCtrl object. CSliderCtrl 向父窗口发送WM_HSCROLL消息
所以,在父窗口中添加了OnHScroll
①对话框模板添加一个Slider滚动条 ,指定ID_????
②使用ClassWizard对对话框类添加 对WM_HSCROLL 的消息处理函数
③在消息处理函数中书写对具体不同动作的反应
void C???::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{ if (pScrollBar == NULL || pScrollBar->GetDlgCtrlID() != ID_????)
return ; //其他滚动条发的
switch (nSBCode) //动作
{
case SB_TOP:
MessageBox("到头了");
break;
case SB_BOTTOM:
MessageBox("到首了");
break;
case SB_PAGEUP:
MessageBox("后翻页");
break;
case SB_PAGEDOWN:
MessageBox("前翻页");
break;
case SB_LINEUP:
MessageBox("前进");
break;
case SB_LINEDOWN:
MessageBox("后退");
break;
case SB_THUMBTRACK:
MessageBox("拖动");
break;
}
//.......
}