Transparenz funktioniert, doch updated er nicht mehr ...
-
Hallo,
hier folgender Code:
if (Message==WM_CTLCOLOREDIT){ switch(GetDlgCtrlID((HWND)lParam)) { case IDC_EDIT1: SetBkMode((HDC)wParam,TRANSPARENT); // Texthintergrund auf transparent setzen SetTextColor((HDC)wParam,RGB(255,255,255)); // Textfarbe auf Weiss setzen return (LRESULT)GetStockObject(NULL_BRUSH); //kein HBRUSH zurückgeben break; default: return false; } }//WM_CTLCOLOREDITMeine Textfelder sind nun alle transparent, aber wenn ich etwas schreibe und den inhalt dann wieder lösche aktualisiert er nicht richtig.
Kann mir jemand helfen,
danke schonmal,
OHPen
-
Afaik musst du dann über ein InvalidateRect das Parent-Fenster dazu überreden sich zu aktualisieren - bin mir aber nicht ganz sicher

-
Danke schonmal an der Stelle, ich werd das gleich mal ausprobieren und dann bescheid sagen

thx
-
Hi,
also ich hab nun folgenden Code eingefügt:
if(Message==WM_MOUSEMOVE){ RECT rt; if(GetClientRect(hwnd,&rt)){ InvalidateRect(hwnd, &rt, true); } UpdateWindow(hwnd); }Der Tip von Flenders war sehr gut den es klappt nun.
Problem is nur, wie man sieht hab ich das in die WM_MOUSEMOVE eingebaut.
Updated erstens nur wenn ich die Maus bewege und zweitens bekommen ich dann bei Mausbewegung ein heftiges Flackern, was ja auch nachvollziehbar ist wenn man bedenkt wie oft der Event wohl "geworfen" wird.
Zuerst hab ich versucht das ganze beim Event WM_KEYDOWN reinzupacken, aber da tat sich garnichts.
Bestimmt weiß jemand wie mir geholfen werden kann :),danke wieder,
Gruß OHPen
-
Mach das doch direkt nach dem Ändern des Textes im darüberliegenden Control
