static: farben zur laufzeit ändern
-
moin,
ich habe:
case WM_CTLCOLORSTATIC: SetBkMode ((HDC) wParam, TRANSPARENT); return (LRESULT)GetStockObject(NULL_BRUSH); // Hintergrund färben break;nun möchte ich die Hintergrundfarbe/TextFarbe von einem Static ändern, zb über SendMessage(), doch welche message???
PS: es geht eigentlich um RadioFelder
aber ist ja fast gleich
-
omg, hatten wir doch schon...Also:
LRESULT CALLBACK WndProc(...) { static HBRUSH hbStatichBk; switch(uiMessage) { case WM_CREATE: hbStatichBk = CreateSolidBrush(RGB(rot,blau,grün)); // ... case WM_CTLCOLORSTATIC: // oder WM_CTLCOLORBTN: SetBkMode(HDC)wParam, TRANSPARENT); return ((LRESULT)hbStatichBk); // Hintergrund färben case WM_DESTROY: // ... DeleteObject(hbStatichBk); PostQuitMessage(0); return (0L); } }einfach hbStatichBk ändern, und ein InvalidateRect(hWndStatic), NULL, FALSE); aufrufen, damit wird dein static dann neugezeichnet...denk an DeleteObject
PS: Selber denken schadet auch nicht