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());//重設給光標設置位置 指向最后           
    }
}

 

2.CString 獲取中文,字母及數字的字節數

 轉載:https://blog.csdn.net/qiangzi4646/article/details/62881587

CString text = _T("中國12ab");
int len1 = text.GetLength();//獲取的是字符數量,值為 6
int len2 = CStringA(text).GetLength();//獲取的是字節數量,值為 8

 

二.MFC基於對話框程序——固定主對話框大小

     1. 用記事本打開.rc格式文件

     2. 找到主對話框的相關信息,例如下面

     IDD_TEST_DIALOG DIALOGEX 0, 0, 320, 200
     STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME

     3. 將“| WS_THICKFRAME”去掉,保存重新編譯即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM