zoukankan      html  css  js  c++  java
  • 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”去掉,保存重新编译即可

  • 相关阅读:
    随笔
    随笔
    第一个存储过程
    mysql 存储过程
    join
    随笔
    玩家注册登录
    mysql 存储二进制数据
    mysql学习
    socket listen/accept
  • 原文地址:https://www.cnblogs.com/chechen/p/10070018.html
Copyright © 2011-2022 走看看