主题 |
1.
滑块控件属性设置 2. 使用滑块控件设置颜色 3. 显示Slider的数值 4.
5.
|
属性 |
|
代码:: |
/////////////////////////////////////////////////////////////////////////////
// CProject02Dlg dialog
//class CProject02Dlg : public CDialog
//{
// Construction
//public:
// CProject02Dlg(CWnd* pParent = NULL); // standard constructor
COLORREF m_clColor;
// Dialog Data 在CProject02Dlg中右键添加个Add MemberFunction
void CProject02Dlg::updatePicCtrl()
{
CDC * pDC = m_ctrl_pic1.GetDC();
CRect rc;
m_ctrl_pic1.GetClientRect(rc);
pDC -> FillRect(rc, & CBrush(m_clColor));
m_ctrl_pic1.ReleaseDC(pDC); } 在BOOL
CProject02Dlg::OnInitDialog()
部分添加slider的初始化部分代码
// TODO: Add extra initialization
here
m_ctrl_Slider1_Red.SetRange(0,255,FALSE);
m_ctrl_Slider2_Green.SetRange(0,255,FALSE); m_ctrl_Slider3_Blue.SetRange(0,255,FALSE); void CProject02Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar*
pScrollBar)
{
// TODO: Add your message handler code here and/or
call default
if (nSBCode == SB_THUMBTRACK)
{
if
(pScrollBar -> m_hWnd == m_ctrl_Slider1_Red.m_hWnd)
{
m_nEdt1_Red = nPos;
UpdateData(FALSE);
}
if
(pScrollBar -> m_hWnd == m_ctrl_Slider2_Green.m_hWnd)
{
m_nEdt2_Green = nPos;
UpdateData(FALSE);
}
if
(pScrollBar -> m_hWnd == m_ctrl_Slider3_Blue.m_hWnd)
{
m_nEdt3_Blue = nPos;
UpdateData(FALSE);
}
m_clColor = RGB(m_nEdt1_Red,m_nEdt2_Green,m_nEdt3_Blue);
updatePicCtrl();
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar); }//为每个Edit添加个EN_Change消息 void CProject02Dlg::OnChangeEdit1()
{
// TODO: If this is a RICHEDIT control, the control
will not
// send this notification unless you override the
CDialog::OnInitDialog()
// function and call
CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the
mask.
// TODO: Add your control notification handler code
here
UpdateData(TRUE);
m_ctrl_Slider1_Red.SetPos(m_nEdt1_Red);
updatePicCtrl();
}
void CProject02Dlg::OnChangeEdit2()
{
// TODO: If this is a RICHEDIT control, the control
will not
// send this notification unless you override the
CDialog::OnInitDialog()
// function and call
CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the
mask.
// TODO: Add your control notification handler code
here
UpdateData(TRUE);
m_ctrl_Slider2_Green.SetPos(m_nEdt2_Green);
updatePicCtrl();
}
void CProject02Dlg::OnChangeEdit3()
{
// TODO: If this is a RICHEDIT control, the control
will not
// send this notification unless you override the
CDialog::OnInitDialog()
// function and call
CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the
mask.
// TODO: Add your control notification handler code
here
UpdateData(TRUE);
m_ctrl_Slider3_Blue.SetPos(m_nEdt3_Blue);
updatePicCtrl();
效果图: |