MFC中,我创造了一个编辑框,cstring类型的,怎么限制这个串的数量

 我来答
lusir
2019-03-31 · 知道合伙人IT服务行家
lusir
知道合伙人IT服务行家
采纳数:89 获赞数:166
网络工程师,DCS开发核心工程师,公司研发先进

向TA提问 私信TA
展开全部

在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呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式