網上查到許多文章說,用OnCtlColor可以改變ListControl控制元件的背景色,我在VC++6.0和VS2013下都試過,不起作用。代碼如下:
HBRUSH CListControlColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if (nCtlColor == CTLCOLOR_LISTBOX)
{
return m_brush;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
并且將if陳述句改為if (pWnd->GetDlgCtrlID() == IDC_LIST_TEST)也不行。將if陳述句改為if (nCtlColor == CTLCOLOR_BTN)對按鈕控制元件也不起作用。不知道為什么,哪位高手指點一下 。謝謝了!
uj5u.com熱心網友回復:
listctrl用SetBkColor試試uj5u.com熱心網友回復:
據說 新按鈕 沒有 CTLCOLOR_BTN 訊息uj5u.com熱心網友回復:
確實是可以改變的,但是如果你的字符集是Unicode就無法改變這是因為Unicode模式下界面風格的問題,主要就是界面風格問題,只是默認字符集模式控制了界面風格
只有在XP風格下CTLCOLOR_LISTBOX背景才會改變
而Unicode模式下界面為隨系統變化的界面風格
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/51486.html
標籤:界面
上一篇:CFont+CDC寫出的字體怎么模糊不清,而且帶顏色的呢
下一篇:mfc問題
