VC中如何改變對框中控件的顏色
發表于:2007-07-14來源:作者:點擊數:
標簽:
在VC中,當我們大量的運用控件時,往往會為改變控件的顏色所煩惱。因為VC不象 VB 那樣,可以方便地改變對話框及各個控件的顏色,要改變一個控件的顏色比較煩瑣。本文所介紹的就是如何改變在一個對框上的控件的顏色。步驟如下: ① 先創建一個基于對話框的工
在VC中,當我們大量的運用控件時,往往會為改變控件的顏色所煩惱。因為VC不象
VB那樣,可以方便地改變對話框及各個控件的顏色,要改變一個控件的顏色比較煩瑣。本文所介紹的就是如何改變在一個對框上的控件的顏色。步驟如下:
① 先創建一個基于對話框的工程,命名為test,然后在對話框上加入一個ListBox控件。
② 在testDlg.h中加入一個成員變量:CBrush m_brush;
③ 在OnInitDialog()中,加入m_brush.CreateSolidBrush( RGB(0,0,0 );此處設置的RGB值可以改變ListBox的背景色。為了觀看ListBox中字的顏色變化,我們給ListBox加入幾個字:利用Class Wizard給ListBox加入一個Control類型的成員變量m_ctrlListBox,然后在OnInitDialog()加入如下所示的代碼:
m_ctrlListBox.AddString("1號選手");
m_ctrlListBox.AddString("2號選手");
④ 點擊Class Wizard,給testDlg加入WM_CTLCOLOR事件,單擊Edit Code按鈕,然后把改函數的內容替換為如下代碼:
if(nCtlColor== CTLCOLOR_LISTBOX)
{
pDC- >SetBkMode(TRANSPARENT);
pDC- >SetTextColor(RGB(255,255,255));
//此處設置字體的顏色
return (HBRUSH)m_brush.GetSafeHandle();
}
else
return CDialog::OnCtlColor (pDC, pWnd, nCtlColor);
現在編譯并運行改程序,可以看到列表框已經變成黑色而其中的字已經變為白色了!
原文轉自:http://www.anti-gravitydesign.com