MFC中spin control控件的使用方法

一般都是配合可编辑文本框(CEdit)一起使用,首先在界面上拖动spin control和CEdit控件,然后设置Tap键顺序,必须保持一前一后,如果前者小于后者则上下按键增减文本框值是正常的,否则是反着的;接着再将spin control的属性设置Set Buddy Integer设为True;wrap设置为ture表示允许回绕;

然后再为控件添加变量:CSpinButtonCtrl m_spin;

再在界面初始化(OnInitDialog)中添加

m_spin.SetRange(0,50); //设置选值范围

m_spin.SetBuddy(GetDlgItem(IDC_EDIT1));  //跟edit控件绑定,buddy这个单词的意思就是朋友,伙伴

//绑定好之后你可以在edit上直接输入数字,然后再点spin控件时它会根据你当前的值加或减1.

m_Spin.SetBase(n);//   

仅为

10 

16; 

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


=================================================================

同时配套的有,当可编辑文本框的内容输入不合法时的处理:

应该为编辑框添加EN_CHANGE消息,而不是KillFocus消息。

然后在EN_CHANGE消息处理函数中添加如下代码:

    UpdateData(TRUE);//将文本框中的数据取出来放到m_nEditNum里

    if ((m_nEditNum>100) || (m_nEditNum<1))
    {
	MessageBox("输入数字不合法!");
        m_nEditNum = 1;
        UpdateData(FALSE);//将m_nEditNum的值传给可编辑文本框

    }

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFCSpinControl是一个用于实现微调功能的件。通常与可编辑文本框(CEdit)一起使用。以下是SpinControl的用法: 1. 在对话框界面上添加一个编辑框件和一个SpinControl件。 2. 为编辑框和SpinControl件分别添加变量。例如,编辑框添加一个CString类型的变量m_editNum1,SpinControl添加一个CSpinButtonCtrl类型的变量m_Spin。 3. 在初始化函数绑定这两个件。使用SetBuddy函数将SpinControl与编辑框关联起来,并设置SpinControl的取值范围。例如: ``` int temp = _wtoi(m_editNum1); m_Spin.SetBuddy(GetDlgItem(temp)); m_Spin.SetRange(0, 100); ``` 4. 为SpinControl添加消息响应事件。在响应事件,可以通过UpdateData函数将编辑框的值更新到变量,然后根据点击的箭头方向进行微调操作,并将结果更新到编辑框。例如: ``` void CSpinctrlDlg::OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) { LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); UpdateData(true); CString ss; if (pNMUpDown->iDelta == -1) // 往下的箭头 { double a; a = wcstod(m_editNum1, NULL) - 1; ss.Format(_T("%.1f"), a); } else if (pNMUpDown->iDelta == 1) // 往上的箭头 { double a; a = wcstod(m_editNum1, NULL) + 1; ss.Format(_T("%.1f"), a); } m_editNum1 = ss; UpdateData(false); *pResult = 0; } ``` 以上是SpinControlMFC的简要用法。通过与可编辑文本框配合使用,可以实现对数值的微调操作。 #### 引用[.reference_title] - *1* [MFCSpin control使用](https://blog.csdn.net/yousss/article/details/80061662)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MFCspin control件的使用方法](https://blog.csdn.net/komtao520/article/details/48541671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MFC件之spin control](https://blog.csdn.net/whysnlc/article/details/7776840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值