[小练eVC]常用控件之微调按钮

微调按钮是一个简易的滚动条,它经常与一个称为“伙伴窗口”(Buddy Windows)的编辑控件结合在一起使用,他们可以很好的配合,MFC类CSpinButtonCtrl封装了微调控件。本例将把编辑框和微调按钮组合起来,用来输入RGB的三种颜色。
1、使用eVC创建一个基于MFC的应用程序SpinUse;
2、设计界面如图:

对话框空间属性如下
标识(ID) 描述
IDC_EDT_RED 编辑框,范围为0-255,对应变量为m_red
IDC_EDT_GREEN 编辑框,范围为0-255,对应变量为m_green
IDC_EDT_BLUE 编辑框,范围为0-255,对应变量为m_blue
IDC_SPIN_RED 微调按钮,需要选中SER BUDDY INTEGER复选框
IDC_SPIN_GREEN      微调按钮,需要选中SER BUDDY INTEGER复选框
IDC_SPIN_BLUE 微调按钮,需要选中SER BUDDY INTEGER复选框

3、在CSPinUseDlg的OnInitDialog中添加如下代码
CSpinButtonCtrl * pSpinRed= (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_RED);
    ASSERT(pSpinRed
!=NULL);
    pSpinRed
->SetBuddy(GetDlgItem(IDC_EDT_RED));
    pSpinRed
->SetRange(0,255);
    pSpinRed
->SetPos(128);

    CSpinButtonCtrl 
* pSpinGreen= (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_GREEN);
    ASSERT(pSpinGreen
!=NULL);
    pSpinGreen
->SetBuddy(GetDlgItem(IDC_EDT_GREEN));
    pSpinGreen
->SetRange(0,255);
    pSpinGreen
->SetPos(128);

    CSpinButtonCtrl 
* pSpinBlue= (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_BLUE);
    ASSERT(pSpinBlue
!=NULL);
    pSpinBlue
->SetBuddy(GetDlgItem(IDC_EDT_BLUE));
    pSpinBlue
->SetRange(0,255);
    pSpinBlue
->SetPos(128);

4、用类向导添加在个颜色编辑框的OnChange函数。并添加如下代码。
void CSpinUseDlg::OnColorChange() 
{

UpdateData(TRUE);
CBrush colorBrush;
COLORREF clRGB;

clRGB
=RGB(m_red,m_green,m_blue);
CClientDC
*pClientDC;
pClientDC
= new CClientDC(this);
colorBrush.CreateSolidBrush(clRGB);
CRect rect(
100,200,200,300);
pClientDC
->FillRect(rect,&colorBrush);
delete pClientDC;
        // 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
    
}

5、完成编译
原文地址:https://www.cnblogs.com/karlchen/p/541891.html