2010-06-23 164 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创建的“画笔”。