MFC改變編輯框背景、字體、顏色等

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");
    }
   }
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
發佈了24 篇原創文章 · 獲贊 18 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章