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”去掉,保存重新编译即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值