Mfc子窗口修改Static Text控件的字体、大小、颜色

开门见山:创建子窗口的方法请参考我上一篇博客:http://blog.csdn.net/u014411348/article/details/53911682

主窗口修改Static Text控件网上已有很多大神给出了方法,小的就不再重复。

一、单纯改变字体大小、字体


1.请自行在窗口中添加一个Static Text控件并命名。在子窗口的类文件***.h文件下添加(如图1)CFont font1;//控件1CFont font2;//控件2


图1

2.在对应的***.cpp文件中的DoDataExchange(CDataExchange* pDX)函数中添加以下代码:font1.CreatePointFont(220, L"楷体");//控件1GetDlgItem(IDC_STATIC1)->SetFont(&font1); //更改控件1的字体font2.CreatePointFont(260, L"黑体");//控件2GetDlgItem(IDC_STATIC2)->SetFont(&font2);//更改控件2的字体

编译运行可下图结果:




图2

二、单纯改变字体大小、字体、颜色

改变颜色需响应WM_CTLCOLOR,有两种方法创建OnCtlColor()函数,
1.1.可使用类向导添加OnCtlColor()函数
1.2.可手动添加OnCtlColor()函数
在.h文件中添加函数声明:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
在.cpp文件中添加:
BEGIN_MESSAGE_MAP(CDefinedViewDlg, CDialog)  
  ...  
  ON_WM_CTLCOLOR()
  ...
END_MESSAGE_MAP()
 //函数实现
HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
   if (pWnd->GetDlgCtrlID()==IDC_E_TEST) //控件ID
      pDC->SetTextColor(RGB(255,0,0)); //设置颜色
   return hbr;
}
2.在OnCtlColor函数中添加代码实现修改控件,
HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  在此更改 DC 的任何特性
	if (pWnd->GetDlgCtrlID() == IDC_STATIC1)
	{
		m_font.CreatePointFont(220, L"华文行楷");//控件1
		pDC->SetBkColor(RGB(0, 255, 0));//背景色为绿色
		pDC->SetTextColor(RGB(255, 0, 0));//文字为红色
		pDC->SelectObject(&m_font);//文字为22号字体,华文行楷
		return m_brush;
	}
	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
	return hbr;
}


图3

有疑问的朋友可留言!





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值