+ -
当前位置:首页 → 问答吧 → 求救呀

求救呀

时间:2011-12-02

来源:互联网

我要实现 一个输入框 在里面输入 如:CEdit
  我输入18的时候会自动补充成18- 然后写在18-后面输入19 自动补充成18-19- 这样一直写下去 求救 哪位大侠指导下。

作者: liangbina07   发布时间: 2011-12-02

响应 edit onchange 事件。。然在这里进行判断

输入两位数字后,直接添加 -

作者: shen_wei   发布时间: 2011-12-02

void CDkgEditC::OnEnChangeEdit1()
{
UpdateData(TRUE);
if ( m_sValue.GetLength()>=2)
{
if (m_sValue.GetLength() == 2)
{
m_sValue+=L"-";
UpdateData(FALSE);

}
i = m_sValue.Find(L"-",i+1);
CString str = m_sValue.Mid(i+1);
if ( str.GetLength() == 2)
{
m_sValue+=L"-";
UpdateData(FALSE);
}
else
{
UpdateData(FALSE);

}


}

}

我是这样写的 但是还是不行 我就不知道错在哪里 按逻辑是可以的

作者: liangbina07   发布时间: 2011-12-02

CString message;
CString const = _T("-");
GetDlgItemText(IDC_Edit,message.GetBuffer(10));
message += const;
SetDlgItemText(IDC_Edit,(LPCTSTR)message);
updatedata(false);

作者: hai296   发布时间: 2011-12-02

UpdateData(TRUE);
if(m_sValue.GetLength()>=2)
{
if (m_sValue.GetLength() == 2)
{
m_sValue+=L"-"; 
UpdateData(FALSE);
((CEdit*)GetDlgItem(IDC_EDIT1))->SetSel(m_sValue.GetLength(),m_sValue.GetLength(),TRUE);
return;
}
else
{
CString str;
str=m_sValue.Right(2);
if((str.Find("-",0))==-1)
{
m_sValue+=L"-";
UpdateData(FALSE);
((CEdit*)GetDlgItem(IDC_EDIT1))->SetSel(m_sValue.GetLength(),m_sValue.GetLength(),TRUE);
return;
}
}
}
UpdateData(FALSE);

作者: liujie250079934   发布时间: 2011-12-02

IDC_EDIT1 是你编辑框的ID

作者: liujie250079934   发布时间: 2011-12-02