MFC编辑框改变背景、颜色

    技术2022-05-19  22

    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)