MFC 实现对 Static Text 控件的颜色、字体的操作

准备工作:

1、如何设置Static Text实现居中:

       选择Static Text控件的属性,找到以下两个属性:

            Align Text: 水平文本,选择 center,实现左右居中

            Center Image:选择True,实现水平居中

2,设置颜色、大小、字体

    定义CFont 型变量,实现字体大小和颜色的设置

     CFont m_font1,m_font2;

     m_font1.CreatePointFont(100, _T("华文琥珀")); 

     m_font2.CreatePointFont(100, _T("微软雅黑"));  

3,给Dlg添加消息响应函数:

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

编程实现:

1,添加两个Button控件和一个Static Text 控件

2,在头文件中声明变量:
            public:
	CFont m_font1,m_font2;
	BOOL m_bBlue;
    BOOL m_bRed;

3,在BOOL CMFCtestDlg::OnInitDialog()中给m_font 初始化

         //修改字体  
m_font1.CreatePointFont(100, _T("华文琥珀")); 
 //修改字体  

         m_font2.CreatePointFont(100, _T("微软雅黑"));  

4,给两个Button控件添加消息响应代码

///  红色
void CMFCtestDlg::OnBnClickedBtnRed()
{
	 //颜色 
	 m_bBlue = FALSE;  
     m_bRed = TRUE; 
	 GetDlgItem(IDC_STATIC_TEXT)->Invalidate();
	 return;
}

蓝色
void CMFCtestDlg::OnBnClickedBtnBlue()
{
    //颜色  
    m_bBlue = TRUE;  
    m_bRed = FALSE;  
	 GetDlgItem(IDC_STATIC_TEXT)->Invalidate(NULL);
    return; 
}

5,在HBRUSH CMFCtestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)中添加代码

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

	// TODO:  在此更改 DC 的任何特性
	

	 if(IDC_STATIC_TEXT == pWnd-> GetDlgCtrlID())   
    {   
        if (TRUE == m_bBlue)  
        {  
            pDC->SetTextColor(RGB(51, 153, 255));
			pDC->SelectObject(&m_font1);
        }  
        else if (TRUE == m_bRed)  
        {  
            pDC->SetTextColor(RGB(255, 0, 0));   //红色  
			pDC->SelectObject(&m_font2);
        }  
        else  
        {  
            //其余默认情况,貌似不写都没有问题  
            pDC->SetTextColor(RGB(0, 0, 0));  
        }  
          
    }  
	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
	return hbr;
}







    

          



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值