MFC的Spin Control基础控件的使用
1.向GUI界面添加一个MFC 提供的Spin数值调节控件
2.设置其"伙伴“,并设置数值调节的范围
3.如何让数值显示在文本框中?你可以有多种选择:可以让文本框控件绑定一个数值类型的变量;也可以获取文本框控件后,再将值设置到文本框
1 BOOL CNbtscanDlg::OnInitDialog() 2 { 3 CDialog::OnInitDialog(); 4 5 // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 6 // 执行此操作 7 SetIcon(m_hIcon, TRUE); // 设置大图标 8 SetIcon(m_hIcon, FALSE); // 设置小图标 9 10 // TODO: 在此添加额外的初始化代码 11 // 定义“数值调节按钮(spin)”控件对象 12 CSpinButtonCtrl *pSpinBtn = (CSpinButtonCtrl *)GetDlgItem(IDC_SPIN_DELAY); 13 // 设置伙伴按钮 14 pSpinBtn->SetBuddy(GetDlgItem(IDC_EDT_DELAYVAL)); // IDC_EDT_DELAYVAL 与显示界面的一个文本框控件绑定,设置的是值类型 15 // 最大设置为10000毫秒(10秒) 16 pSpinBtn->SetRange(1, 10000); 17 // 设置延迟扫描时间默认为500毫秒 18 UpdateData(TRUE); 19 m_edt_DelayValue = 500; 20 UpdateData(FALSE); 21 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE 22 }
4.响应函数“OnDeltaposSpinDelay”,当用户单击上、下调值按钮时,改变文本框的数值
1 void CNbtscanDlg::OnDeltaposSpinDelay(NMHDR *pNMHDR, LRESULT *pResult) 2 { 3 LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); 4 // TODO: 在此添加控件通知处理程序代码 5 UpdateData(TRUE); 6 if (pNMUpDown->iDelta == -1) 7 { 8 // 用户按下了spin控件的向下箭头 9 m_edt_DelayValue -= 100; 10 if (m_edt_DelayValue < 100) 11 { 12 m_edt_DelayValue = 100; 13 } 14 } 15 else if (pNMUpDown->iDelta == 1) 16 { 17 // 用户按下了spin控件的向上箭头 18 m_edt_DelayValue += 100; 19 if (m_edt_DelayValue > 10000) 20 { 21 m_edt_DelayValue = 10000; 22 } 23 } 24 UpdateData(FALSE); 25 *pResult = 0; 26 }