【MFC】:MFC实现对控件字体属性的修改

按照下面的流程来添加一个函数即可,至于为什么添加这个函数,是大家需要思考的内容,还有就是字体属性能通过哪些函数来修改,这是一个问题,需要大家去解决。。。(准确来说把控件ID放到函数里面去就能够进行相关操作了)



1.打开对应对话框的类向导ClassWizard。

 

2.在消息映射MessageMaps中添加消息Message:WM_CTLCOLOR。

 

3.然后程序代码中会添加进函数:

OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

 

4.在这个函数中添加if语句,其中的条件表达式改成想要设置的控件;

比如改成: if (pWnd-> GetDlgCtrlID() == IDC_STATIC1 || pWnd-> GetDlgCtrlID() == IDC_STATIC2)

注意,控件ID最好改过,如果多个控件使用同个默认ID,函数则不识别。

 

5.在if中添加以下语句:
pDC->SetTextColor(RGB(255,255,255)); //设置字体为白色

pDC->SetBkMode(TRANSPARENT);         //设置背景为透明

 

整个函数的代码如下:

HBRUSH CHall::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
 
 if (pWnd-> GetDlgCtrlID() == IDC_STATIC1 || pWnd-> GetDlgCtrlID() == IDC_STATIC2 || pWnd-> GetDlgCtrlID() == IDC_STATIC3)
 {
  pDC->SetBkMode(TRANSPARENT);   //设置背景透明
  pDC->SetTextColor(RGB(255,255,255));
  return   HBRUSH(GetStockObject(HOLLOW_BRUSH));
 }
 return hbr;
}

你可能感兴趣的:(【MFC】:MFC实现对控件字体属性的修改)