您的位置:首页 > 其它

MFC改变编辑框背景、字体、颜色等

2012-04-23 10:54 357 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: