C MFC创建编辑控件可以拥有的最大数字
c++ mfc create maximum number an edit control can have
使用以下代码,我设法在单击按钮时更新了带有值的编辑控制框。
void SomeDlg::OnBnClickedValue2Plus2()
{
m_control1.GetWindowText(m_value1);
m_control2.GetWindowText(m_value2);
m_control3.GetWindowText(m_value3);
int a,b,c;
if (m_getcheck.GetCheck() == 1
&& _ttoi(m_value2) < 40
&& _ttoi(m_totalvalue) < 100)
{
a = _ttoi(m_value1);
b = _ttoi(m_value2) + 2;
c = a + b;
GetDlgItem(IDC_EDIT1)->SetWindowText(_itot(b, buff, 10));
GetDlgItem(IDC_EDIT3)->SetWindowText(_itot(c, buff, 10));
}
}
void SomeDlg::OnBnClickedValue3Plus3()
{
m_control1.GetWindowText(m_value1);
m_control2.GetWindowText(m_value2);
m_control3.GetWindowText(m_value3);
int a,b,c;
if (m_getcheck.GetCheck() == 1
&& _ttoi(m_value1) < 40
&& _ttoi(m_totalvalue) < 100)
{
a = _ttoi(m_value1) + 3;
b = _ttoi(m_value2);
c = a + b;
GetDlgItem(IDC_EDIT2)->SetWindowText(_itot(a, buff, 10));
GetDlgItem(IDC_EDIT3)->SetWindowText(_itot(c, buff, 10));
}
}
按下Plus2或Plus 3按钮时,有3个更新的编辑控件。当Plus2被按下 2的Edit1更新时,按下Plus3时,Edit2使用 3更新。第三编辑控件显示Edit1 Edit2的总数,该总数应在Edit1中最大为100,并且Edit2最多为40。
但是事实并非如此,如果按下按钮后数字相同或超过限制,则值不会更改,但是如果值为39,我添加了3个,则将变为42,而不是40变得不活跃。
我将如何为编辑控件设置最大值?
问题是您在修改值之前先检查值。只需更改这样的"如果"这样的陈述
if (m_getcheck.GetCheck() == 1
&& (_ttoi(m_value2 ) + 2 ) <= 40
&& (_ttoi(m_totalvalue ) + 2 ) <= 100)
和
if (m_getcheck.GetCheck() == 1
&& ( _ttoi(m_value1 ) + 3 ) <= 40
&& ( _ttoi(m_totalvalue) + 3 ) <= 100)
我也更改了&lt;在&lt; =因为您说1和2的最大值是40,总数为100。
我通过更改
解决了我的问题void SomeDlg::OnBnClickedValue3Plus3()
{
m_control1.GetWindowText(m_value1);
m_control2.GetWindowText(m_value2);
m_control3.GetWindowText(m_value3);
int a,b,c;
if (m_getcheck.GetCheck() == 1
&& _ttoi(m_value1) < 40
&& _ttoi(m_totalvalue) < 100)
{
a = _ttoi(m_value1) + 3;
b = _ttoi(m_value2);
c = a + b;
GetDlgItem(IDC_EDIT2)->SetWindowText(_itot(a, buff, 10));
GetDlgItem(IDC_EDIT3)->SetWindowText(_itot(c, buff, 10));
}
}
到这个
void SomeDlg::OnBnClickedValue3Plus3()
{
m_control1.GetWindowText(m_value1);
m_control2.GetWindowText(m_value2);
m_control3.GetWindowText(m_value3);
BOOL max1 = 40;
BOOL max2 = 100;
int a,b,c;
a = _ttoi(m_value1) + 3;
b = _ttoi(m_value2);
c = a + b;
if (m_getcheck.GetCheck() == 1
&& a <= max1
&& c <= max2)
{
GetDlgItem(IDC_EDIT2)->SetWindowText(_itot(a, buff, 10));
GetDlgItem(IDC_EDIT3)->SetWindowText(_itot(c, buff, 10));
}
}
这意味着当该值为39时,我尝试添加3个什么都没有发生。但是,如果我添加1次达到40,那是我首先想要的方式,我只是认为如果我尝试添加3到39的数字将数字更改为最大值,那会更简单。按照我最初的意图进行操作要容易得多。感谢您的所有帮助。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 在 c++ 中拥有一组结构的正确方法是什么?
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 如何检查一个c++字符串中有多少相同的字符/数字
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 我如何限制我连续拥有的数字数量
- C MFC创建编辑控件可以拥有的最大数字