怎么VC++设定对话框中所有静态文本的字体

批量设置静态文本字体
CFont  *f;
 f = new CFont;
 f->CreateFont(13,                        // nHeight
       5,                         // nWidth
       0,                         // nEscapement
       0,                         // nOrientation
       500,                 // nWeight
       FALSE,                     // bItalic
       FALSE,                     // bUnderline
       0,                         // cStrikeOut
       ANSI_CHARSET,              // nCharSet
       OUT_DEFAULT_PRECIS,        // nOutPrecision
       CLIP_TT_ALWAYS,       // nClipPrecision
       PROOF_QUALITY ,           // nQuality
       DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
       _T("Tahoma"));                 // lpszFac
GetDlgItem(IDC_STATIC1)->SetFont(f);


这是设定ID为IDC_STATIC1的静态文本的字体。但我有10个静态文本,有没有一次就设定这10个静态文本的字体的方法。只要一行代码的那种,有没有啊。

1. 可以在OnCtlColor中设置
if( CTLCOLOR_STATIC == nCtlColor)
    {
        if( IDC_STATIC1                == pWnd->GetDlgCtrlID()
           || IDC_STATIC2            == pWnd->GetDlgCtrlID()
           || IDC_STATIC3            == pWnd->GetDlgCtrlID()
           || IDC_STATIC4            == pWnd->GetDlgCtrlID()
           || IDC_STATIC5            == pWnd->GetDlgCtrlID()
           || IDC_STATIC6            == pWnd->GetDlgCtrlID()
           || IDC_STATIC7        == pWnd->GetDlgCtrlID()
           || IDC_STATIC8        == pWnd->GetDlgCtrlID()
           || IDC_STATIC9        == pWnd->GetDlgCtrlID()
           || IDC_STATIC10            == pWnd->GetDlgCtrlID()
           
        {
                 CWnd *pWnd = GetDlgItem(dwID);
              pWnd ->SetFont(pFont);
                   // pFont是自己定义的字体
                }
                     
         }

2. 或将下面代码放在初始化函数那里:
CFont  *f;
     f = new CFont;
     f->CreateFont(13,                        // nHeight
           5,                         // nWidth
           0,                         // nEscapement
           0,                         // nOrientation
           500,                 // nWeight
           FALSE,                     // bItalic
           FALSE,                     // bUnderline
           0,                         // cStrikeOut
           ANSI_CHARSET,              // nCharSet
           OUT_DEFAULT_PRECIS,        // nOutPrecision
           CLIP_TT_ALWAYS,       // nClipPrecision
           PROOF_QUALITY ,           // nQuality
           DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
           _T("Tahoma"));                 // lpszFac


   CWnd   *pWndChild = GetWindow(GW_CHILD);   
   while(pWndChild)   
   {   
      pWndChild=pWndChild->GetNextWindow(); 
  //TRACE1("%d\n",pWndChild->GetDlgCtrlID()); 
  if(pWndChild == NULL)
  continue;
  pWndChild->SetFont(f);
   }   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值