导读:
默认读者比较熟悉MFC的框架
知道MFC数据绑定的原理
熟练使用MFC类向导
知道多字节和Unicode的区别
知道字节和字符的区别
1、DDV_MaxChars
可以通过菜单“项目”-》“类向导”(Ctrl + Shitf + X)添加控件变量的时候,设定最大支持的字符数
void CTestLimitDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_RICHEDIT21, m_RichEdit);
DDX_Text(pDX, IDC_RICHEDIT21, m_strEdit);
DDV_MaxChars(pDX, m_strEdit, 18);
}
输入18个数字时,就限制不让输入
输入18个中文时,就限制不让输入
void CTestLimitDlg::OnBnClickedButton2()
{
if (!UpdateData())
{
return;
}
CString str = m_strEdit;
}
这里UpdateData会调用 DoDataExchange函数,对数据进行检查,如果超过18个字节(笔者认为这个是MFC的bug,应该是18个字符才对),MFC会报错,UpdateData返回FALSE
一个中文相当于2个字节,8 * 2 + 3 = 19个字节
2、LimitText
LimitText仅仅是限定输入字符个数,不做检查