1. 程式人生 > >WM_CTLCOLOR設定控制元件設定背景和字型顏色

WM_CTLCOLOR設定控制元件設定背景和字型顏色

HBRUSH CDialogColor::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd, nCtlColor);
    // TODO: Change any attributes of the DC here
    // 設定顯示字型
    CFont * cFont=new CFont;
    cFont->CreateFont(16,0,0,0,FW_SEMIBOLD,FALSE,FALSE,0,
                ANSI_CHARSET,OUT_DEFAULT_PRECIS,
                CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
                DEFAULT_PITCH&FF_SWISS,"Arial");
    // 對特定的控制元件做修改
    switch()
    {
        case CTLCOLOR_STATIC: //對所有靜態文字控制元件的設定
        {
            pDC->SetBkMode(TRANSPARENT);
            //設定背景為透明
            pDC->SetTextColor(RGB(255,255,0)); //設定字型顏色
            pWnd->SetFont(cFont); //設定字型
            HBRUSH B = CreateSolidBrush(RGB(125,125,255));
            //建立畫刷
            return (HBRUSH) B; //返回畫刷控制代碼
        }
        case CTLCOLOR_EDIT: //對所有編輯框的設定
        {
            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);
    }
}