引言
查找了一些有关这方面的资料,都不很全面;有的说要重载CEdit等控件,甚至有直接说在MFC上无法实现,感觉微软应该没有这么烂吧。后来终于在国外网站找到了(https://www.tutorialspoint.com/mfc/mfc_spin_button.htm)。现在把这块知识整理完整,以方便大家借鉴。
第一步:设置Resource
在Resource里建立一个Dialog,拖入CEdit(ID为IDC_EDIT),之后拖入CSpinControl到CEdit的右侧;
第二步:设置控件属性
编辑CEdit的属性,设置Number为True;设置CSpinControl的Auto Buddy和Set Buddy Integer均为True。
第三步:使用代码将CEdit和CSpinControl绑定
基于CSpinControl建立控件变量【m_spin】,在该Dialog的Class的OnInitDialog里设置如下代码:
// 设置范围
m_spinBtnStartSpeed.SetRange(-10, 10);
// 设置初始值
GetDlgItem(IDC_EDIT_START_SPEED)->SetWindowText(L"0");
// 绑定伙伴控件
m_spinBtnStartSpeed.SetBuddy(GetDlgItem(IDC_EDIT_START_SPEED));
以上。