MFC中Spin control的使用

本文详细介绍了如何在MFC中使用Spin控件,包括绑定Spin与Edit控件、实现数值增减功能及设置Spin控件的各种属性。通过具体代码示例,帮助读者掌握Spin控件的基本用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、绑定spin和edit

m_Spin.SetBuddy(GetDlgItem(m_Edit1)); 
m_Spin.SetRange(0,100);

2、实现数值的增减

双击控件添加消息

void CAlarm::OnDeltaposSpin5(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
UpdateData(true);
CString ss;
if(pNMUpDown->iDelta == -1) // 如果此值为-1 , 说明点击了Spin的往下的箭头
{
double a;
a=wcstod(m_Edit1,NULL)-1;
ss.Format(_T("%.1f"),a);
}
else if(pNMUpDown->iDelta == 1) // 如果此值为1, 说明点击了Spin的往上的箭头
{
double a;
a=wcstod(m_Edit1,NULL)+1;
ss.Format(_T("%.1f"),a);
}
m_Edit1=ss;
UpdateData(false);
*pResult = 0;
}


1>首先给该控件关联一个变量

(Control类型的)m_Spin 

2>在使用前先通过属性对话框修改它的部分属性

 Alignment 属性共有3个选项Unattached,Left,Right Align,按自己的爱好选一个,决定SPIN是在右边还在左边; 

 Arrow Key,    设置为TRUE 时,当FOCUS 在SPIN 上时,可以通过键盘上的上下键对其进行操作,为FALSE时则不可以

  Wrap, 设为TRUE 时,当超过范围时,则进行回绕,为FALSE时....... 

 Auto Buddy,为TRUE 时,它将把它的下一个控件自动设为自己的BUDDY,当为FALSE时我们,可以通过SetBuddy(CWnd*)为其设定一个BUDDY ! 

 SetIntBuddy,设为TRUE时,它将把伙伴控件值设为整数. 

3>常用属性

 a.设定/   获取SPIN的范围

m_Spin.SetRange(short min,short max); 

m_Spin.SetRange32(int min,int max); 

m_Spin.GetRange(short & min,short & max); 

m_Spin.GetRange32(int & min ,int & max); 

b.设置/ 获取当前显示的数据

m_Spin.SetPos(int pos); 

m_Spin.SetPos32(int pos); 

int    pos = m_Spin.GetPos(); 

int    pos = m_Spin.GetPos32(LPBOOL lpbError = NULL );//A pointer to a boolean value that is set to zero if the value is successfully retrieved or non-zero if an error occurs. If this parameter is set to NULL, errors are not reported. 

c.设定/ 获取

当前的伙伴关系(BUDDY) 

m_Spin.SetBuddy(CWnd * );//(CWnd * GetDlgItem(ID)) 

CWnd * m_hwnd = m_Spin.GetBuddy(); 

e. 设定/ 获取当前BUDDY 里是按几进制显示的(10   ,   16) 

m_Spin.SetBase(n);//   n 仅为10 或16;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值