Witam,
w Toolbarze maluje tło przechwytując WM_ERASEBKGND w subklasowanej procedurze za pomocą takiego kodu:
case WM_ERASEBKGND:{
RECT r;
GetClientRect(hwnd, &r);
Graphics graph(hwnd);
Color kolor = 0xFF000000 | GetSysColor(COLOR_MENU);
LinearGradientBrush linGrBrush(
Point(0, 0),
Point(0, r.bottom),
kolor,
Color(255, 132, 209, 214));
graph.FillRectangle(&linGrBrush, 0, r.top, r.right, r.bottom);
}return TRUE;
I pojawia się problem, bo zamalowane zostają przyciski na Toolbarze. Jak najadę mychą na batona, to się pojawia, jak zjadę - znowu zostaje zamalowany przez FillRectangle'a.
Ustawiłem dla Toolbara WS_CLIPCHILDREN i WS_CLIPSIBLINGS i nic. Pewnie to GDI+ maluje jakoś bez opamiętania, tak? Czy jest jakiś sposób? Dopiero poznaje GDI+ więc.. :)