if(nCtlColor==CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(255,0,0))//这个是设置字体颜色。
pDC->SetBkColor(RGB(255,2550,0))//这个设置背景色
}
需要调用相关的函数的。。
在下例中,要修改颜色的文本框对象ID为:IDC_EDIT。HBRUSH
CTestDlg::OnCtlColor(CDC*
pDC,
CWnd*
pWnd,
UINT
nCtlColor)
{
HBRUSH
hbr
=
CDialog::OnCtlColor(pDC,
pWnd,
nCtlColor)
//
TODO:
Change
any
attributes
of
the
DC
here
if(pWnd
==
&m_edit)
{
pDC->SetBkMode(TRANSPARENT)
pDC->SetTextColor(RGB(0,0,255))
HBRUSH
newHbr
=
CreateSolidBrush(GetSysColor(COLOR_BTNFACE))
//
TODO:
Return
a
different
brush
if
the
default
is
not
desired
return
newHbr
}
return
hbr
}
改变字体的大小:=========================================思路:调用控件的SetFont方法。
步骤:1:添加字体类对象
//假设你已有了名为My的对话框工程.并有一个ID=IDC_EDIT1的Edit控件.
class
CMyDlg
:
public
CDialog
{
public:
CFont
*m_Font//最好用指针,我用对象调用好像不起作用,不清楚原因!
m_Font
=
new
CFont//结束时记得要delete
m_Font
........
}
2.新建字体&设置字体myFont.CreateFont(41,0,0,0,
100,FALSE,FALSE,0,ANSI_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,FF_SWISS,(LPCTSTR)"Arial")//创建字体
CEdit
*m_Edit=(CEdit
*)GetDlgItem(IDC_EDITBegin)
m_Edit->SetFont(&myFont,FALSE)//设置字体
创建字体函数BOOL
CreateFont的参数说明:
=============BOOL
CreateFont(
int
nHeight,
int
nWidth,
int
nEscapement,
int
nOrientation,
int
nWeight,
BYTE
bItalic,
BYTE
bUnderline,
BYTE
cStrikeOut,
BYTE
nCharSet,
BYTE
nOutPrecision,
BYTE
nClipPrecision,
BYTE
nQuality,
BYTE
nPitchAndFamily,
LPCTSTR
lpszFacename
)
nHeight
:字体高度.
三中情况
1、>0:字体的高度值(设备坐标)2、=0:字体采用缺省值.
3、
SetFont(&fnt_static)
GetDlgItem(IDC_BUTTONGenerate)->
SetFont(&fnt_static)
其中,IDC_STATIC,IDC_BUTTON分别为静态文本和按钮的ID。
PS:以上讨论的方法只是一次修改一个控件的属性,显然这样做是不符合面向对象的思想的。
一了百了的方法:从CEdit类派生出一个可以自己处理字体、背景和字体颜色的类。具体怎样做,在研究出来后再写一篇。
当然可以,过程稍复杂,如下例子:CDC *pDC
//这里要将 pDC = 你要写字的那个窗口的DC
CFont newfont//用来保存新字体
CFont *oldFont//用来保存旧字体
newfont.CreateFontW(20,
11,
0,
0,
FW_NORMAL,
FALSE,
FALSE,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,
_T("宋体")
)//创建新字体
oldFont=pDC->SelectObject(&newfont)//选择新字体
pDC->SetTextColor(RGB(0,255,0))//设置字体颜色
pDC->TextOutW(10, 10, pDoc->text)//输出
pDC->SelectObject(oldFont)//选择回老字体
newfont.DeleteObject()//删除新字体
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)