名詞解釋
CWnd:: OnCtlColor
afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );
返回值: OnCtlColor必須返回一個刷子句柄,該刷子將被用於畫出控制項的背景。
參數說明
pDC 包含了子視窗的顯示設備環境的指針。可能是臨時的。 PWnd 包含了要求顏色的控制項的指針。可能是臨時的。 NCtlColor 包含了下列值,指定了控制項的類型: · CTLCOLOR_BTN 按鈕控制項 · CTLCOLOR_DLG 對話框 · CTLCOLOR_EDIT 編輯控制項 · CTLCOLOR_LISTBOX 列表框控制項 · CTLCOLOR_MSGBOX 訊息框 · CTLCOLOR_SCROLLBAR 滾動條控制項 · CTLCOLOR_STATIC 靜態控制項 |
說明
當要畫出一個子控制項時,框架就調用這個成員函式。多數控制項將這個訊息傳送到它們的父視窗(通常是一個對話框),為使用正確的顏色畫出控制項而準備pDC。
要改變文本的顏色,使用要求的紅、綠、藍色值(RGB)調用SetTextColor成員函式。
要改變單行編輯控制項的背景顏色,在CTLCOLOR_EDIT和CTLCOLOR_MSGBOX訊息代碼中設定刷子句柄,並在回響CTLCOLOR_EDIT的代碼中調用CDC::SetBkColor函式。
不會為下拉組合框中的列表框調用 OnCtlColor函式,因為下拉列表框實際上是組合框的子視窗,而不是視窗的子視窗。要改變下拉列表框的顏色,創建一個CcomboBox,在重載的 OnCtlColor中的nCtlColor參數中檢查CTLCOLOR_LISTBOX。在這個處理函式中,為設定文本的背景必須使用SetBkColor成員函式。
注意事項
框架調用這個成員函式以允許你的應用程式處理一個Windows訊息。傳遞給你的成員函式的參數反映了接收到訊息時框架接收到的參數。如果你調用了這個函式的基類實現,則該實現將使用最初傳遞給訊息的參數(而不是你提供給這個函式的參數)。