社区
界面
帖子详情
如何改变CStatic控件中字体的颜色?
xsx7677226
2003-08-22 10:25:39
又个CStatic控件,想在代码里改变显示字体的颜色,请问怎么做呢?
...全文
52
9
打赏
收藏
如何改变CStatic控件中字体的颜色?
又个CStatic控件,想在代码里改变显示字体的颜色,请问怎么做呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hellolwl
2003-08-25
打赏
举报
回复
Jeff的《MFC Windows 程序设计》上写得很好
hellolwl
2003-08-25
打赏
举报
回复
CColorStatic::CColorStatic()
{
m_clrText = RGB(0,0,0);
m_clrBack = ::GetSysColor(COLOR_3DFACE);
m_br.CreateSolidBrush(m_clrBack);
}
void CColorStatic::SetTextColor(COLORREF clrText)
{
m_clrText = clrText;
Invalidate();
}
void CColorStatic::SetBkColor(COLORREF clrBack)
{
m_clrBack = clrBack;
m_br.DeleteObject();
m_br.CreateSolidBrush(clrBack);
Invalidate();
}
HBRUSH CColorStatic::CtlColor(CDC* pDC, UINT nCtlColor)
{
pDC->SetTextColor(m_clrText);
pDC->SetBkColor(m_clrBack);
return (HBRUSH)m_br;
}
xsx7677226
2003-08-25
打赏
举报
回复
没人来看了吗?
xsx7677226
2003-08-22
打赏
举报
回复
to heweixing_77(何足道) 我试了你的方法,为什么要加上这句呢?为什么要选NULL_BRUSH?
return (HBRUSH)GetStockObject(NULL_BRUSH);
我的函数是这个样子:
HBRUSH CTeststaticcolorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if (pWnd->GetDlgCtrlID() == IDC_STATIC_HELLO)
pDC->SetTextColor(RGB(255,0,0));
if (pWnd->GetDlgCtrlID() == IDC_STATIC_HELLO3)
pDC->SetTextColor(RGB(255,54,0));
// TODO: Return a different brush if the default is not desired
return hbr;
}
请原谅我的罗嗦,再次感谢!
heweixing_77
2003-08-22
打赏
举报
回复
怎么找不到?
在Index项,Look for:OnCtlColor。
背景色setbkcolor不就OK了?
xsx7677226
2003-08-22
打赏
举报
回复
TO zhouyong0371(小周周) ,为什么要加上 if( nCtlColor == CTLCOLOR_STATIC )...
这句呢? 我试了,不加这句话效果一样,请为这个if表达式是什么意思呢?(我在MSDN里查不到CTLCOLOR_STATIC)
再次感谢!
xsx7677226
2003-08-22
打赏
举报
回复
let me check it out :)
zhouyong0371
2003-08-22
打赏
举报
回复
HBRUSH CSetColorDlg::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_STATIC)
{
pDC->SetTextColor(RGB(255, 0, 0));
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
heweixing_77
2003-08-22
打赏
举报
回复
在对话框的OnCtlColor(...)函数里:
if(pWnd->GetDlgCtrlID()==IDC_STATIC_YOU)
{
pDC->SetTextColor(RGB(255, 0, 0));
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
可以
改变
字体
颜色
及背景色的
控件
C
Static
、CEdit
控件
可以
改变
字体
颜色
及背景色
mfc 自绘
控件
static
可改背景
颜色
字体
等
mfc本身的
static
控件
背景为灰色,影响整体效果。这个是自绘的
Static
控件
,可改背景
颜色
字体
等
C
Static
派生类
C
Static
控件
派生类,实现背景
颜色
,
字体
颜色
、内容、对齐、粗细、斜体、大小、下划线等,链接,
字体
闪烁,
控件
边框设置
Static
控件
封装类.zip
封装了一个类,基类是C
Static
,可
改变
字体
的大小背景
颜色
,不需要使用on_conlor即可,非常方便调用,例如m_lable_check_stat[road_num].SetBkColor(RGB(143, 143, 143)); 既可
改变
背景
颜色
重载静态文本
控件
C
Static
,支持背景贴图和透明,v1.2
重载静态文本
控件
,如果需要新的功能,请获取作者邮箱,发邮件给我,我将第一时间为您添加接口 //功能:获取作者邮箱 //输入:无 //输出:无 //返回:作者信息 //注:内部已经刷新 CString GetAutherEmail(); //功能:设置
字体
大小 //输入:lfHeight
字体
大小,单位为像素,不能为负数,当为0时表示采用系统默认大小 //输出:无 //注:内部已经刷新 void SetTextHeight(LONG lfHeight = 0); //功能:设置
字体
宽度 //输入:lfWidth
字体
宽度,单位为像素,不能为负数,当为0时表示采用系统默认大小 //输出:无 //注:内部已经刷新 void SetTextWidth(LONG lfWidth = 0); //功能:设置
字体
颜色
//输入:clrText
字体
颜色
//输出:无 //注:内部已经刷新 void SetTextColor(COLORREF clrText); //功能:设置
字体
粗细 //输入:lfWeight粗细的数值,范围为0-1000,当为0时表示默认 //输出:无 //注:内部已经刷新,当数值小于0或大于1000时,都自动设置为0,表示采用默认值 void SetTextWeight(LONG lfWeight); //功能:设置
字体
是否为斜体 //输入:bItalic是否为斜体,true为斜体,false为非斜体 //输出:无 //注:内部已经刷新 void SetTextItalic(bool bItalic); //功能:设置
字体
指定每一行文本输出时相对于页面底端的角度。 //输入:lfEscapement以十分之一度为单位指定每一行文本输出时相对于页面底端的角度。 //输出:无 //注:内部已经刷新,逆时针为正,顺时针为负 void SetTextEscapement(LONG lfEscapement); //功能:设置
字体
指定字符基线相对于页面底端的角度。 //输入:lfOrientation以十分之一度为单位指定字符基线相对于页面底端的角度。 //输出:无 //注:内部已经刷新,逆时针为正,顺时针为负 void SetTextOrientation(LONG lfOrientation); //功能:设置
字体
是否带下划线。 //输入:bUnderline是否带下划线,true为带下划线,false为不带下划线。 //输出:无 //注:内部已经刷新 void SetTextUnderline(bool bUnderline); //功能:设置
字体
是否带删除线。 //输入:bUnderline是否带删除线,true为带删除线,false为不带删除线。 //输出:无 //注:内部已经刷新 void SetTextStrikeOut(bool bStrikeOut); //功能:设置
字体
名字。 //输入:sFaceName
字体
名字。 //输出:无 //注:内部已经刷新 //王彬 20120710 void SetTextFaceName(CString sFaceName); //功能:设置
字体
字符集。 //输入:lfCharSet
字体
字符集,通常情况对于
中
文的Windows系统,也可以直接用DEFAULT_CHARSET表示默认字符集 // 英文
字体
可以用ANSI_CHARSET,简体
中
文
字体
可以用GB2312_CHARSET,繁体
中
文
字体
可以用CHINESEBIG5_CHARSET //输出:无 //注:内部已经刷新 //王彬 20120710 void SetTextCharSet(BYTE lfCharSet); //功能:
字体
样式采用系统默认 //输入:无 //输出:无 //注:内部已经刷新 void SetTextDefault(); //功能:设置对齐方式 //输入:dwAlign对齐方式 ALIGN_LEFT 左对齐,ALIGN_RIGHT 右对齐,ALIGN_MIDDLE 水平居
中
对齐 //ALIGN_TOP 上对齐,ALIGN_BOTTOM 底对齐,ALIGN_VCENTER 垂直居
中
对齐, ALIGN_CENTER 水平垂直居
中
对齐 //输出:无 //注:内部已经刷新,垂直居
中
和底部对齐只能为一行 void SetAlign(DWORD dwAlign); //功能:设置背景图片 //输入:sPicPath 图片路径, nMode为贴图方式 //输出:无 //注:内部已经刷新 bool SetBKPicture(CString sPicPath, DWORD dwMode); //功能:设置背景图片过滤色(屏蔽指定
颜色
) //输入:clrFiltrate过滤色 //输出:无 //注:内部已经刷新 void SetPictureFiltrateColor(COLORREF clrFiltrate); //功能:设置背景是否贴图 //输入:bShow是否背景贴图, true为贴图, false为不贴图 //输出:无 //注:内部已经刷新 bool ShowPicture(bool bShow); //功能:设置背景
颜色
//输入:clrBK背景
颜色
//输出:无 //注:内部已经刷新 void SetBKColor(COLORREF clrBK); //功能:设置背景透明 //输入:无 //输出:无 //注:内部已经刷新 void SetBKTransparent(); //功能:刷新背景 //输入:无 //输出:无 void Redraw
Static
(); //功能:绘制边框 //输入:nWidth边框宽度,clrBorder边框
颜色
//输出:无 //注:当nWidth<=0时,表示不绘制边框 void SetBorder(int nWidth, COLORREF clrBorder = RGB(0,0,0)); //功能:设置默认的背景样式 //输入:无 //输出:无 //注:内部已经刷新 void SetBKDefault();
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章