一.
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”去掉,保存重新編譯即可