MFC中,我创造了一个编辑框,cstring类型的,怎么限制这个串的数量
1个回答
展开全部
在OnInitDialog()中:
edit.SetLimitText(6);//edit为编辑框的成员变量
或
CEdit *pEdit = (CEdit *)this->GetDlgItem(IDC_EDIT);
pEdit->SetLimitText(6);//限制编辑框输入字符串长度为6个字符
还有一种方式是自己通过消息实现
先通过向导创建消息处理函数:
具体处理函数代码如下:
#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());//重设给光标设置位置 指向最后
}
}
CEdit类的主要成员函数
使用编辑框最重要的莫过于获取和设置编辑框中的正文了,它们的成员函数分别是GetWindowText和SetWindowText,这两个函数都是继承自CWnd类的成员函数,另外,还可以使用CWnd类的GetWindowTextLength函数获取编辑框中正文的程度。
追问
不行啊 变量是Cstring SetLimitText()不是Cstring里的
追答
限制了编辑框的长度,编辑框对应的CString长度不就限制住了呀,干嘛非得去限制CString呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询