C++ c++;win32:如何设置窗口的颜色?
我可以在注册课程时设置背景色,例如:C++ c++;win32:如何设置窗口的颜色?,c++,c,winapi,C++,C,Winapi,我可以在注册课程时设置背景色,例如: wincl.hbrBackground = CreateSolidBrush(RGB(202, 238, 255)); RegisterClassEx(&wincl); 但是,我该如何处理我用CreateWindow函数创建的任何窗口呢? 像主窗口上的按钮一样,我启用了视觉样式,并且我可以注意到按钮后面的windows默认灰背颜色 不要告诉我必须在我的所有控件上设置WindowLong以执行window过程,并截取WM_PAINT:(如果您想要自定
wincl.hbrBackground = CreateSolidBrush(RGB(202, 238, 255));
RegisterClassEx(&wincl);
但是,我该如何处理我用CreateWindow函数创建的任何窗口呢?
像主窗口上的按钮一样,我启用了视觉样式,并且我可以注意到按钮后面的windows默认灰背颜色
不要告诉我必须在我的所有控件上设置WindowLong以执行window过程,并截取WM_PAINT:(如果您想要自定义窗口,您可以创建自己的窗口类来绘制该类型的窗口。为wm_paint实现处理程序,并为该窗口绘制您想要的任何内容。有很多教程可用。所有窗口控件都会向其父控件发送一条消息,让笔刷用于填充其背景。 假设将画笔句柄的副本保存在某个位置,可以在WindowProc或DialogProc中执行以下操作,以确保所有画笔都使用正确的背景画笔绘制
case WM_CTLCOLORSTATIC:
case WM_CTLCOLORBTN:
HDC hdc;
HWND hwndCtl;
POINT pt;
hdc = (HDC)wParam;
hwndCtl = (HWND)lParam;
pt.x = 0;
pt.y = 0;
MapWindowPoints(hwndCtl,_hwnd,&pt,1);
x = -pt.x;
y = -pt.y;
SetBrushOrgEx(hdc,x,y,NULL);
return (INT_PTR)_skinBrush;