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 }

 

posted @ 2015-08-17 09:31  博客园新新新新人  阅读(2515)  评论(0)    收藏  举报