MFC中修改静态文本框中文字的字体、颜色 您所在的位置:网站首页 设置中文字的颜色及效果可以使用 MFC中修改静态文本框中文字的字体、颜色

MFC中修改静态文本框中文字的字体、颜色

2024-07-15 10:42| 来源: 网络整理| 查看: 265

一    设置字体

在OnInitDialog()函数中添加代码 方法1:

newFont.CreatePointFont(160,L"楷体"); m_static_xsdj.SetFont(&newFont);方法2:

CFont* font; font=m_static_xsdj.GetFont();//获取CFont对象 LOGFONT lf; font->GetLogFont(&lf);//获取LOGFONT结构体 lf.lfHeight=-26; //修改字体大小 lf.lfItalic=TRUE; //倾斜 lf.lfWeight=400; //修改字体的粗细 newFont.CreateFontIndirectW(&lf);//创建一个新的字体 m_static_xsdj.SetFont(&newFont); 二  修改静态文本框控件中文本颜色、文本背景颜色、和控件背景颜色 首先应当明确的是,在那个函数中下手(写代码),答案是 OnCtlColor()函数中,这个函数是用于响应WM_CTLCOLOR消息的,当控件需要重绘时会发出这个消息。

HBRUSH CDlgXSDJ::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); return hbr; }

三个参数:pDC表示与当前控件相关联的设备上下文,pWnd是当前控件的指针,nCtlColor 表示控件的类型,返回值是一个HBRUSH句柄,该句柄用户重绘控件的背景色。

然后说一下SetTextColor()、SetBkColor()、和SetBkMode()三个函数

SetTextColor()函数很明显是设置文本颜色的,而SetBkColor()函数不是用来设置控件背景颜色的,而是用来设置文本背景颜色的(就是包含文本的矩形)、SetBkMode()是用来设定文字背景模式的,参数只有两个选择OPAQUE、TRANSPARENT表示是否透明。

那么控件的背景颜色怎么设置呢?答案是通过返回的HBRUSH句柄。

HBRUSH CDlgXSDJ::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); if( IDC_STATIC_XSDJ == pWnd->GetDlgCtrlID())//判断发出消息的空间是否是该静态文本框 { pDC->SetTextColor(RGB(255,0,0));//设置文本颜色为红色 pDC->SetBkMode(OPAQUE);//设置文本背景模式为透明 pDC->SetBkColor(RGB(0,0,255));//设置文本背景为蓝色 hbr=CreateSolidBrush(RGB(0,255,0));//控件的背景色为绿色 } return hbr;//返回用于重绘控件背景的画刷 }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有