您的位置:首页 > 其它

如何设置CStatic的字体?

2012-08-20 17:19 162 查看
主 题: 如何设置CStatic的字体?

作 者: liuxwin

回复次数: 7

发表时间: 2006-9-22 16:16:43

正文内容: 无

回复人: dzct2006-9-22 16:19:39
CStatic f; f.SetFont(&font);


回复人: 井中月_VC (得分:5)2006-9-22 16:26:40
本站精华贴

如何改变对话框内控件的字体?

你有没有感到Edit,Static....控件的字体太单调,没什么新新样?下面的内容,给你一个解答.

[解决方法]

简单的步骤:在Windows中,每个窗体都有自己的字体.要改变其字体首先要CFont::CreateFont创建一个字体,然后用CWnd::SetFont选择此字体,赋给控件.但很多人可能会因为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 :字体高度.>0:字体的高度值;=0:字体采用缺省直.<0:此值的绝对值为高度.

nWidth :字体宽度.

nEscapement :文本行的倾斜度.

nOrientation :字符基线的倾斜度.

nWeight :字体的粗细.如下:

.FW_DONTCARE

.FW_THIN

.FW_EXTRALIGHT

.....

bItalic :字体是否为斜体

bUnderline :字体是否带下划线

cStrikeOut :字体是否带删除线

nCharSet :字体的字符集

.ANSI_CHARSET

.DEFAULT_CHARSET

.SYMBOL_CHARSET.....

nOutPrecision :字符的输出精度

nClipPrecision :字符裁剪的精度

nQuality :字符的输出质量

nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族)

lpszFacename :字体名称

[程序实现]

假设你已有了名为My的对话框工程.并有一个ID=IDC_EDIT1的Edit控件.

class CMyDlg : public CDialog

{

public:

CFont m_Font;

........

};

BOOL CTMyDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// TODO: Add extra initialization here

//CFont m_Font;

m_Font.CreateFont(-11,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"Arial");

CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDIT1);

m_Edit->SetFont(&m_Font,FALSE);

return TRUE; // return TRUE unless you set the focus to a control

}

小小说明:在OnInitDialog()中的//CFont m_Font;前的"//"号去掉,将类声明中的CFont m_Font;去掉会是什么结果?请自己试试.

改变Edit字体颜色! [所有相关帖子]

HBRUSH CButtonDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

{

HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

if(nCtlColor == CTLCOLOR_EDIT)

{

if(pWnd->GetDlgCtrlID()== IDC_EDIT1)

{

pDC->SetTextColor(RGB(255,255,0));

pDC->SetBkColor(RGB(251, 247, 200));

pDC->SetBkMode(TRANSPARENT);

return (HBRUSH) m_brush.GetSafeHandle();

}

}

// TODO: Return a different brush if the default is not desired

return hbr;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: