VC 编辑框 改变背景、字体、文本颜色、长度限制、英文 汉字判断

1。长度限制

OnInitDialog()中:

 m_edit1.SetLimitText(8);                           //m_edit1为编辑框的成员变量

或者

CEdit*pEdt=(CEdit*)GetDlgItem(IDC_EDIT1);
 pEdt->SetLimitText(8);                              //限制编辑框输入长度为8字节

2。汉字判断

方法一、

CString str="ab你c好。。";

for(int i=0;i<str.GetLength();i++)
 {
  if(   (BYTE)str[i]   <   0x80  )  
  {  
      MessageBox("非汉字");  
  }      
  else//汉字  
  {   
    MessageBox("是汉字");
 }                                                                    //方法不好,只能判断有没有汉字

方法二、

CString   ss="dd你aa今bb真cc";
 int i=0;
 while(i<ss.GetLength())
 {

    if(IsDBCSLeadByte(ss[i]))
    { 

       //   是DBCS
       i += 2;
       AfxMessageBox("汉字");
     }

     else

    {

      //   英文
      i ++;
      AfxMessageBox("English");
     }
   }

附原帖:

http://topic.csdn.net/t/20020728/12/905767.html

3。字体及大小

定义一全局变量或成员变量CFont   font;                                        //不要定义成局部变量,否则没效果

CEdit*pEdt=(CEdit*)GetDlgItem(IDC_EDIT1);
 font.CreatePointFont(266,"Arial");
 pEdt->SetFont(&font);

4。背景及文本颜色

定义一成员变量CBrush m_brush;

OnInitDialog()中进行初始化工作m_brush.CreateSolidBrush(RGB(255,0,0));

然后在OnCtrlColor中

HBRUSH CAsdfaaaaaaaaaDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
 if(nCtlColor==CTLCOLOR_EDIT &&

                           pWnd->GetDlgCtrlID()==IDC_EDIT1)//注意此处的(pWnd->),否则没效果
 {
  pDC->SetTextColor(RGB(255,0,0));
  pDC->SetBkColor(RGB(255,255,0));//设置文本背景色
  pDC->SetBkMode(TRANSPARENT);//设置背景透明
  hbr = (HBRUSH)m_brush;
 }

 return hbr;
}

对于nCtlColor的类型,如下:

  • CTLCOLOR_BTN   Button control
  • CTLCOLOR_DLG   Dialog box
  • CTLCOLOR_EDIT   Edit control
  • CTLCOLOR_LISTBOX   List-box control
  • CTLCOLOR_MSGBOX   Message box
  • CTLCOLOR_SCROLLBAR   Scroll-bar control
  • CTLCOLOR_STATIC   Static control
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

miaoshengwu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值