如何在程序中改变静态标签(CStatic)的文本颜色及字体大小?
如何在程序中改变静态标签(CStatic)的文本颜色及字体大小? 问题点数:0、回复次数:3Top
1 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-04-03 20:53:39 得分 0
最好改ID,其余同一般控件Top
2 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2005-04-03 20:54:28 得分 0
字体
你可以使用CFont类来改变CStatic的字体。MFC中的CFont类保存着特殊Windows字体的单一实例。例如,一个实例的CFont类可能保存有18点的Times字体,而另一个可能保存着10点的Courier字体。你可以调用SetFont函数来修改字体。下面的代码给出了如何实现字体。
CTestWindow::CTestWindow()
{
CRect r;
// Create the window itself
Create(NULL,
"CStatic Tests",
WS_OVERLAPPEDWINDOW,
CRect(0,0,200,200));
// Get the size of the client rectangle
GetClientRect(&r);
r.InflateRect(-20,-20);
// Create a static label
cs = new CStatic();
cs->Create("Hello World",
WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,
r,
this);
// Create a new 36 point Arial font
font = new CFont;
font->CreateFont(36,0,0,0,700,0,0,0,
ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_DONTCARE,
"arial");
// Cause the label to use the new font
cs->SetFont(font);
}
上面的代码开始于建立窗口和CStatic。然后建立一CFont类型对象。字体变量应作为CTestWindow的数据成员来说明“CFont *font”。CFont::CreateFont函数有15个参数,但是只有三个是最常用的。例如,36指定了以点为单位的字体大小,700指定了字体的密度(400是正常“normal”, 700为加黑“bold”,值的范围为1到1000。FW_NORMAL和FW_BOLD的含义实际上是相同的),“arial”是所用字体的名称。Windows 通常带有五种True Type字体(Arial、Courier New、Symbol、Times New Roman和Wingdings),使用它们,你可以确保任何机器上都会有该字体。如果你使用了系统不知道的字体,则CFont会选择缺省字体。Top
3 楼AnnLiu(Ann)回复于 2005-04-04 00:16:35 得分 0
利用GetDlgItem()获取Static实例句柄
然后更改它的相关属性
自己也没有试过,搂主回去试试
不要忘记把结果告诉大家Top




