2010-06-23 145 views
2

如何設置控件的背景色(.Net中的control.backcolor平等)。我試過setBKColor沒有運氣。設置控件的背景顏色? (WinAPI)

例如:TabHwnd = createWindowEx(NULL,WC_TAB ....

話,怎麼可能我設置TabHwnd的背景色

感謝

回答

0

嘗試子類(見SetClassLong)和過程WM_ERASEBKGND?

+0

有沒有WinAPI功能做這樣的事情? – jmasterx 2010-06-23 22:23:31

+0

當然不是。但子類化並不困難.. – 2010-06-23 22:37:25

1

我知道這個問題是舊的,但也許這個答案仍然會幫助一些人。

對我而言有效的是爲背景顏色消息返回空心畫筆。例如:

switch (msg) { 
    case WM_CTLCOLORDLG: 
    return (INT_PTR)GetStockObject(HOLLOW_BRUSH); 
    case WM_CTLCOLORSTATIC: 
    return (INT_PTR)GetStockObject(HOLLOW_BRUSH); 
} 

另外,您不必擔心刪除由GetStockObject創建的「畫筆」。