csliderbar引发wm_hscroll消息,窗口的处理事件是OnHScroll(uint nsbcode,uint npos,Cscrollbar *pscrollbar);在添加消息的处理方法时,这是一个窗口消息,需要在窗口中添加,添加方法是,在编辑窗口视图下,选中窗口,查看窗口属性,再在属性框中选择消息,最后选择wm_hscroll旁边的onhscroll就可添加了。
所有当前窗口中的csliderbar都会引发wm_hscroll消息,使用pScrollBar->GetDlgCtrlID()来获取ID,区别控件
Code
:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if((pScrollBar->GetDlgCtrlID()==IDC_SLIDER_RED)||(pScrollBar->GetDlgCtrlID()==IDC_SLIDER_GREEN)||(pScrollBar->GetDlgCtrlID()==IDC_SLIDER_BLUE))
{
CSliderCtrl *pSlider=(CSliderCtrl*)GetDlgItem(IDC_SLIDER_RED);
BYTE a,b,c;
a = pSlider->GetPos();
pSlider = (CSliderCtrl*)GetDlgItem(IDC_SLIDER_GREEN);
b = pSlider->GetPos();
pSlider =(CSliderCtrl*)GetDlgItem(IDC_SLIDER_BLUE);
c = pSlider->GetPos();
SetDlgItemInt(IDC_EDIT_RED,a);
SetDlgItemInt(IDC_EDIT_GREEN,b);
SetDlgItemInt(IDC_EDIT_BLUE,c);
CBrush colorbrush;
COLORREF clrgb=RGB(a,b,c);
CClientDC *pclientdc;
pclientdc =new CClientDC(this);
colorbrush.CreateSolidBrush(clrgb);
CRect rect(80,120,160,200);
pclientdc->FillRect(rect,&colorbrush);
delete pclientdc;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}