Static control set text color
Habe ich eine statische Steuerung:
HWND hLabelControl=CreateWindowEx(WS_EX_CLIENTEDGE,"STATIC","",
WS_TABSTOP|WS_VISIBLE|WS_CHILD|SS_CENTER,0,0,24,24,
hwnd,(HMENU)hS1,GetModuleHandle(NULL),NULL);
Ich will, wenn eine Taste gedrückt, wird die Farbe des Textes in die statische Bezeichnung zu ändern, um rot zum Beispiel.
Wie kann ich dies tun?
Ich weiß, es ist ein
SetTextColor(
_In_ HDC hdc,
_In_ COLORREF crColor
);
Funktion, aber ich kann nicht herausfinden, wie man die HDC-static control.
Vielen Dank im Voraus.
EDIT:
Dies nicht funktioniert:
HDC hDC=GetDC(hLabelControl);
SetTextColor(hDC,RGB(255,0,0));
- Der device-Kontext ist in der Regel gegeben, um Sie im Rahmen der Abwicklung der
WM_PAINT
Nachricht. - Nach der Beantwortung, ich erkannte, dass dies ist eine doppelte: stackoverflow.com/questions/14630760/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statische Steuerelemente senden Sie Ihren Eltern eine
WM_CTLCOLORSTATIC
Nachricht, kurz bevor Sie malen sich. Sie können verändern die DC durch Verarbeitung dieser Nachricht.Also der trick ist, um die statische Kontrolle, Sie zu streichen, selbst wenn die Schaltfläche geklickt wird. Sie können dies tun, mehrere verschiedene Möglichkeiten, aber der einfachste ist wahrscheinlich ungültig, das Fenster mit
InvalidateRect
.