MFC限制edit控件的字符输入长度

1.Edit 控件添加EN_CHANGE事件

#define MAX_SIZE                     200 


void CMyDlg::OnChangeEditFeed()
{
    // TODO:  如果该控件是 RICHEDIT 控件,它将不
    // 发送此通知,除非重写 CDialogEx::OnInitDialog()
    // 函数并调用 CRichEditCtrl().SetEventMask(),
    // 同时将 ENM_CHANGE 标志“或”运算到掩码中。

    // TODO:  在此添加控件通知处理程序代码
    CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT);
    CString strContent;
    pEdit->GetWindowText(strContent);

    DWORD dwNum = 0;

    dwNum = WideCharToMultiByte(CP_UTF8, 0, strContent, -1, NULL, 0, NULL, NULL);

    if (dwNum > MAX_SIZE)
    {
        SetDlgItemText(IDC_EDIT_FEED, strContent.Left(MAX_SIZE));
        pEdit->SetSel(strContent.GetLength(), strContent.GetLength());//重设给光标设置位置 指向最后           
    }
}

猜你喜欢

转载自www.cnblogs.com/chechen/p/10070018.html
今日推荐