我有一个编辑控件,只能在1到99之间取整数。要实现这一点,我使用了,modifystyle()和limittext()。有没有办法限制输入0?
答案 0 :(得分:0)
您无需使用代码控制值限制它。 如果使用向导子类化(添加变量)编辑控件会更容易,您可以选择UINT类型并在此处设置最小值和最大值。 也不要忘记将样式设置为ES_NUMBER(在编辑控件属性中将Number设置为True)。
答案 1 :(得分:0)
如果您绝对需要,则必须从CEdit
派生一个类并相应地处理输入。渲染“不可接受的字符”的气球可能有点难以给出在线错误。只有当你计划在多个地方使用这样的类(编辑控制)时,该类才有用,最好是在不同的范围内。
答案 2 :(得分:0)
这与原始帖子中的问题完全不同。
确保您的旋转控件立即跟随Z顺序中的编辑控件(Tab键顺序)。 在资源集微调器样式中:UDS_AUTOBUDDY UDS_SETBUDDYINT,UDS_ALIGNRIGHT,。 这将使微调器成为:选择编辑控件作为伙伴,在编辑框中设置整数,将自身置于编辑控件中的右边缘。
为此,在微调器集的属性中:“Auto Buddy”为True,“Set Buddy Integer”为True,“Alingment”为右对齐。
您必须为编辑控件设置最小值和最大值,现在在EN_CHANGE通知的命令处理程序中处理它。
将此代码放在处理程序中。
void CYourDlg::OnEnChangeEditNum()
{
int iValue = GetDlgItemInt(IDC_EDIT1);
if(iValue < 1 || iValue > 99)
{
m_Edit.ShowBalloonTip(_T("Number Out of Range"), _T("Value must fall between 1 and 99."), TTI_INFO_LARGE);
}
}