Как задать максимальное число символов в EditBox
Вариант1:
CEdit::LimitText(int nChars = 0);
CEdit::SetLimitText(UINT nMax);
Вариант2:
При помощи Class Wizard связать переменную CString с
окошком редактирования и в Class Wizard установить
максимальное количество символов. Затем
добавить событие EN_CHANGE и в это событие добавить
строку UpdateData(true).
Вариант3:
Обработать сообщение EN_CHANGE для окошка
редактирования:
void CMydlgDlg::OnChangeEdit4()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function to send the EM_SETEVENTMASK message to the control
// with the ENM_CHANGE flag ORed into the lParam mask.
// TODO: Add your control notification handler code here
//
int maxChars = 6; // Максимальное кол-во символов
CEdit *pWnd = (CEdit *)GetDlgItem(IDC_EDIT1); // замените Вашим ID
//
if (pWnd->GetWindowTextLength() > maxChars)
{
CString str;
pWnd->GetWindowText(str);
str = str.Left(maxChars);
pWnd->SetWindowText(str);
pWnd->SetSel(maxChars,-1);
}
}
|