Как задать максимальное число символов в 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);
}
 
« Предыдущая статья   Следующая статья »