今天遇到一个EditCtrl问题。要求在MFC对话框上添加一个EditCtrl控件,此控件只能输入10-100之间的整型数。
实现:
1、将EditCtrl的属性中的 外观->number设为True,这时控件只能输入0-9这10个字符。
2、在对话框对应的类中添加一个整型变量m_iNumber,并在构造函数中初始化为0.
3、为控件添加失去焦点时的响应函数:
void CMfcTestDlg::OnEnKillfocusEditNumber()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
m_iNumber = GetDlgItemInt(IDC_EDIT_NUMBER);
if (m_iNumber >100 || m_iNumber <10)
{
AfxMessageBox("Please input a number between 10-100");
GetDlgItem(IDC_EDIT_NUMBER)->SetFocus();
}
}
4、如果需要把数值显示在控件上,则可以使用如下代码:
m_iNumber = 123;
SetDlgItemInt(IDC_EDIT_NUMBER,m_iNumber);
个人认为EditCtrl无法关联整型变量,只能通过SetDlgItemInt,GetDlgItemInt实现输入输出
时间: 2024-10-12 12:09:40