[小练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中添加如下代码
None.gif CSpinButtonCtrl  *  pSpinRed =  (CSpinButtonCtrl * )GetDlgItem(IDC_SPIN_RED);
None.gif    ASSERT(pSpinRed
!= NULL);
None.gif    pSpinRed
-> SetBuddy(GetDlgItem(IDC_EDT_RED));
None.gif    pSpinRed
-> SetRange( 0 , 255 );
None.gif    pSpinRed
-> SetPos( 128 );
None.gif
None.gif    CSpinButtonCtrl 
*  pSpinGreen =  (CSpinButtonCtrl * )GetDlgItem(IDC_SPIN_GREEN);
None.gif    ASSERT(pSpinGreen
!= NULL);
None.gif    pSpinGreen
-> SetBuddy(GetDlgItem(IDC_EDT_GREEN));
None.gif    pSpinGreen
-> SetRange( 0 , 255 );
None.gif    pSpinGreen
-> SetPos( 128 );
None.gif
None.gif    CSpinButtonCtrl 
*  pSpinBlue =  (CSpinButtonCtrl * )GetDlgItem(IDC_SPIN_BLUE);
None.gif    ASSERT(pSpinBlue
!= NULL);
None.gif    pSpinBlue
-> SetBuddy(GetDlgItem(IDC_EDT_BLUE));
None.gif    pSpinBlue
-> SetRange( 0 , 255 );
None.gif    pSpinBlue
-> SetPos( 128 );

4、用类向导添加在个颜色编辑框的OnChange函数。并添加如下代码。
None.gif void  CSpinUseDlg::OnColorChange() 
ExpandedBlockStart.gifContractedBlock.gif
{
InBlock.gif
InBlock.gifUpdateData(TRUE);
InBlock.gifCBrush colorBrush;
InBlock.gifCOLORREF clRGB;
InBlock.gif
InBlock.gifclRGB
=RGB(m_red,m_green,m_blue);
InBlock.gifCClientDC
*pClientDC;
InBlock.gifpClientDC
= new CClientDC(this);
InBlock.gifcolorBrush.CreateSolidBrush(clRGB);
InBlock.gifCRect rect(
100,200,200,300);
InBlock.gifpClientDC
->FillRect(rect,&colorBrush);
InBlock.gifdelete pClientDC;
        // TODO: If this is a RICHEDIT control, the control will not
InBlock.gif    
// send this notification unless you override the CDialog::OnInitDialog()
InBlock.gif    
// function and call CRichEditCtrl().SetEventMask()
InBlock.gif    
// with the ENM_CHANGE flag ORed into the mask.
InBlock.gif    
InBlock.gif    
// TODO: Add your control notification handler code here
InBlock.gif
    
ExpandedBlockEnd.gif}

None.gif
5、完成编译

转载于:https://www.cnblogs.com/karlchen/archive/2006/10/27/541891.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值