Ich bin mit der Einstellung der Hintergrundfarbe eines CStatic mit WTL ein Problem mit (ich vermute ich das gleiche Problem mit MFC haben würde)Hintergrundfarbe der CStatic Ausgabe
Ich habe ein Fenster mit einem schwarzen Hintergrund, der eine Kontrolle hat, die von CStatic darauf ableitet. Ich stelle die Farben über die Nachricht WM_CTLCOLORSTATIC ein. Ich arbeite grundsätzlich, aber der Teil der Kontrolle, der Text hat, erscheint weiß. Hier
ist der Code in dem Rückruf:
LRESULT CReportResults::OnCtrColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if ((HWND)lParam == m_wndLoadingLabel.m_hWnd)
{
HDC hDC = (HDC)wParam;
SetBkColor(hDC, APP_COLOR_BACKGROUND);
SetTextColor(hDC, APP_COLOR_TEXT);
}
return 0;
}
Und hier ist das, was es am Ende aussehen wie auf dem Bildschirm. Das Steuerelement selbst ist größer als der darin enthaltene Text, aber ich bin mir nicht sicher, wie ich den Rest des Steuerelements dazu bringen soll, mit einem schwarzen Hintergrund zu zeichnen. Es scheint, dass die Einstellung der Hintergrundfarbe nur auf Schwarz den Bereich betrifft, in dem der Text angezeigt wird. Irgendwelche Ideen, was ich falsch machen könnte?
Sie sollten * nie * in einem CtrlColor-Handler null zurückgeben. Wenn Sie keinen benutzerdefinierten Pinsel zurückgeben, sollten Sie die Standardfensterprozedur aufrufen und den zurückgegebenen Wert zurückgeben. –
Gut gemacht, um es zu lösen. –