2011-05-03 71 views

回答

1

Windows API不提供許多選項來自定義標準控件的外觀了。

  • WM_CTLCOLORBTN可以通過按鈕來控制按鈕外觀的某些方面的父窗口來處理,但是按鈕的Uxtheme僅使用背景刷子塗刷按鈕後面的區域。臉部的外觀由當前主題決定。

  • WM_DRAWITEM也可以通過父窗口處理,通過在按鈕上設置BS_OWNERDRAW樣式。這允許父窗口完全替代正常的按鈕繪畫邏輯。

0

要管理對話框上控件的顏色,請在對話框類的WM_CTLCOLOR消息中添加處理程序。
然後您將不得不添加幾行:

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

    if (pWnd->GetDlgCtrlID() == IDC_OF_YOUR_BUTTON) 
    { 
     pDC->SetBkColor (RGB(0, 0, 255)); // BLUE color for background 
     pDC->SetTextColor (RGB(255, 0, 0)); // RED color for text 
    } 

    return hbr; 
} 
相關問題