编辑框 背景颜色 字体设置
2013-10-27 10:49
375 查看
修改文本编辑框边框的颜色是一件比较困难的事情,MFC提供的CEdit类只提供了对文本编辑框的功能操作,外观设置是MFC控件管理类的共同弱点,没有办法,我们只能自己重载CEdit类来修改边框颜色。
1、创建CEdit的派生类CDrawEdit
class CDrawEdit : public CEdit
{
DECLARE_DYNAMIC(CDrawEdit)
public:
CDrawEdit();
virtual ~CDrawEdit();
protected:
DECLARE_MESSAGE_MAP()
};
2、设置边框颜色
因为文本编辑框的边框是在非客户区域,所以要重载OnNcPaint()函数。
void CDrawEdit::OnNcPaint()
{
CRect rc;
GetWindowRect(&rc);
CRect rcWindow(0,0,rc.Width(),rc.Height());
CBrush brushFrame;
brushFrame.CreateSolidBrush(RGB(255,0,0));
CWindowDC dc(this);
dc.FrameRect(&rcWindow,&brushFrame);
}
可以定义一个成员变量来保存画刷的颜色值,定义一个成员函数设置此值,这样就可以通过函数来灵活的这是各种边框颜色。
文本颜色和文本字体以及文本编辑框的背景色可以在父类的OnCtlColor中设置
HBRUSH CMFCDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_MYEDIT)
{
pDC->SetTextColor(RGB(0,0,255)); //设置字体颜色
pDC->SelectObject(&m_Font); //设置字体样式
//设置背景色
pDC->SetBkMode(TRANSPARENT);
return CreateSolidBrush(RGB(0,255,0));
}
return hbr;
}
==============
//编辑框内容设置字体---------------------------------------
m_EditFontTime.CreateFont(120, 0, 0, 0, 700,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS, _T("楷体"));
CEdit *m_EditTime=(CEdit *)GetDlgItem(IDC_EDIT1);
m_EditTime->SetFont(&m_EditFontTime);
1、创建CEdit的派生类CDrawEdit
class CDrawEdit : public CEdit
{
DECLARE_DYNAMIC(CDrawEdit)
public:
CDrawEdit();
virtual ~CDrawEdit();
protected:
DECLARE_MESSAGE_MAP()
};
2、设置边框颜色
因为文本编辑框的边框是在非客户区域,所以要重载OnNcPaint()函数。
void CDrawEdit::OnNcPaint()
{
CRect rc;
GetWindowRect(&rc);
CRect rcWindow(0,0,rc.Width(),rc.Height());
CBrush brushFrame;
brushFrame.CreateSolidBrush(RGB(255,0,0));
CWindowDC dc(this);
dc.FrameRect(&rcWindow,&brushFrame);
}
可以定义一个成员变量来保存画刷的颜色值,定义一个成员函数设置此值,这样就可以通过函数来灵活的这是各种边框颜色。
文本颜色和文本字体以及文本编辑框的背景色可以在父类的OnCtlColor中设置
HBRUSH CMFCDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_MYEDIT)
{
pDC->SetTextColor(RGB(0,0,255)); //设置字体颜色
pDC->SelectObject(&m_Font); //设置字体样式
//设置背景色
pDC->SetBkMode(TRANSPARENT);
return CreateSolidBrush(RGB(0,255,0));
}
return hbr;
}
==============
//编辑框内容设置字体---------------------------------------
m_EditFontTime.CreateFont(120, 0, 0, 0, 700,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS, _T("楷体"));
CEdit *m_EditTime=(CEdit *)GetDlgItem(IDC_EDIT1);
m_EditTime->SetFont(&m_EditFontTime);
相关文章推荐
- 设置对话框中编辑框的背景颜色和字体颜色
- eclipse 设置编辑窗口字体和背景颜色
- 关于设置对话框的背景颜色,和设置控件的字体颜色或背景颜色
- eclispe 窗口背景颜色、字体等设置整理
- 设置ListCtrl列表控件其中某一行的字体和背景颜色
- HTML中基本元素基本设置(例如:字体颜色、大小、背景颜色)。
- WebView设置字体颜色, 字体大小,背景
- AndroidStudio设置背景颜色,字体大小,默认显示行号
- EXTJS根据值Value改变gridpanel单元格背景颜色或者设置整行字体颜色
- linux BASH shell下设置字体及背景颜色
- TextView设置超链接、背景颜色、字体颜色等等,Spannable的使用。
- [置顶] 【Eclipse+PyDev】字体、颜色和背景的个性化设置
- 动态设置Edit控件的背景及字体颜色
- 设置 searchbar 的占位文字 以及 编辑文字的颜色和大小 背景颜色;
- OnCtlColor函数:MFC设置静态文本框,编辑框等控件背景和字体颜色
- extjs grid设置某列背景颜色和字体颜色
- Android通过selector选择器设置Button或者textview的背景颜色,字体颜色
- iOS中设置导航栏的背景颜色和标题字体以及颜色,以及tabBarItem的图片和字体颜色的设置
- EXTJS根据值Value改变gridpanel单元格背景颜色或者设置整行字体颜色
- eclipse设置背景颜色、字体和导出