This application shows a COLORREF structure that use Slider Control to determinates your 24-bit RGB color and shows also simple way to communicate between CSliderCtrl, CEdit, and CStatic. void CRGBDlg::OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { CSliderCtrl* pSlider = (CSliderCtrl*) pScrollBar; CString szColorValue; int i = pSlider->GetDlgCtrlID () – IDC_SLIDER1; // Now, nColor = […]
CodeGuru content and product recommendations are
editorially independent. We may make money when you click on links
to our partners.
Learn More

This application shows a COLORREF structure that use Slider Control to determinates your 24-bit RGB color and shows also simple way to communicate between CSliderCtrl, CEdit, and CStatic.
void CRGBDlg::OnVScroll( UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar)
{
CSliderCtrl* pSlider = (CSliderCtrl*) pScrollBar;
CString szColorValue;
int i = pSlider->GetDlgCtrlID () – IDC_SLIDER1;
nColor[i] = pSlider->GetPos();
szColorValue.Format(“%d”, nColor[i]);
SetDlgItemText(i + IDC_EDIT1, szColorValue);
CStatic* pStatic = &m_ctlPaintStatic;
pStatic->UpdateWindow();
pStatic->Invalidate();
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CPaintST::OnPaint()
{
CPaintDC dc(this);
CBrush* pOldBrush;
GetClientRect(rcStatic);
CBrush brBack(m_crBkColor);
dc.FillRect(rcStatic, &brBack);
pOldBrush = dc.SelectObject(&brBack);
dc.SelectObject(pOldBrush);
}
BOOL CPaintST::OnEraseBkgnd(CDC* pDC)
{
CBrush brBackgnd;
CRGBDlg* pColorDlg = (CRGBDlg*) GetParent();
ASSERT(pColorDlg != NULL);
m_crBkColor = RGB ((BYTE) pColorDlg->nColor[0],
(BYTE) pColorDlg->nColor[1],
(BYTE) pColorDlg->nColor[2]);
GetClientRect(rcStatic);
brBackgnd.CreateSolidBrush(m_crBkColor);
pDC->FillRect(rcStatic, &brBackgnd);
return CStatic::OnEraseBkgnd(pDC);
}
Downloads
Download demo project – 40 Kb