搞了好久,也找了很多的资料,用了很多种方法,就是实现不了改变控件的背景颜色。终于,自己慢慢“研究”,实现了最后想要的结果。先贴上部分代码。
case WM_CREATE:
{
hTime = CreateWindow(TEXT("STATIC"), TEXT("Label"), WS_CHILD | WS_VISIBLE | WS_TABSTOP, 0, 30, 35, 16, hWindow, HMENU(20), m_hInstance, NULL);
rColor = RGB(255, 0, 0);
hbrush = CreateSolidBrush(rColor);//创建一个画刷
UpdateWindow(hWindow);
return 0;
}//创建一个控件(Label标签),text为Label,ID号指定为20。
case WM_CTLCOLORSTATIC:
{
int id = GetWindowLong((HWND)lparam, GWL_ID);
hdc = (HDC)wParam;
if (20 == id)
{
SetBkColor(hdc, rColor);
return (LONG)hbrush;//返回画刷后,系统就是自动根据现在的画刷来绘画想要的效果。
}
return 0;
}

本文介绍了一种在Win32编程中为控件设置背景颜色的方法。通过使用WM_CREATE消息创建静态控件,并结合WM_CTLCOLORSTATIC消息及SetBkColor函数,成功实现了控件背景颜色的定制。

1236

被折叠的 条评论
为什么被折叠?



