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

来源:互联网 发布:杭州牛盾网络 编辑:程序博客网 时间:2024/04/29 05:21

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

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1884000