VCでのCStatic設定文字、フォント、色、OnCtlColorの使用
2015 ワード
CStatic , CStatic WM_CTLCOLOR 。 WM_CTLCOLOR , , :
“ ,Windows WM_CTLCOLOR , ”, 。
HBRUSH CAboutDig::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,0,255)); //
pDC->SetBkMode(TRANSPARENT); //
}
}
の3番目のパラメータOnCtlColorには、CTLCOLOR_という主な値があります.BTNボタンコントロールCTLCOLOR_DLGダイアログCTLCOLOR_EDIT編集ボックスCTLCOLOR_LISTBOXリストボックスCTLCOLOR_MSGBOXメッセージボックスCTLCOLOR_SCROLLBARスクロールバーCTLCOLOR_STATIC静的テキスト2.すべてのコントロールに対して統一的なインタフェース設定を使用するのは自由ではないと思うかもしれませんが、VCも特定のIDのコントロールを設定することができます.方法は以下の通りです.switch(pWnd->GetDlgCtrlID())
{
// ID IDC_CTL1、IDC_CTL2 IDC_CTL3
case IDC_CTL1:
case IDC_CTL2:
case IDC_CTL3:
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255, 0));
pWnd->SetFont(cFont);
HBRUSH B = CreateSolidBrush(RGB(125,125,255));
return (HBRUSH) B;
}
default:
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
HBRUSH CAFamlyLianxiDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_STATIC)
{
switch(pWnd->GetDlgCtrlID())
{
case IDC_STATIC1:
case IDC_STATIC2:
case IDC_STATIC3:
case IDC_STATIC4:
case IDC_STATIC5:
case IDC_STATIC6:
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0, 255));
break;
}
case IDC_STATIC7:
case IDC_STATIC8:
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,69, 214));
break;
}
default:
break;
}
}
return hbr;