Aktiv/Inaktiv
-
Hey BitWax,
mein Wille war es nicht, arrogant zu klingen, aber nun mal ehrlich:
"Ein kongruent arbeitendes Programm" ist schwer missverständlich, wenn man das Adjektiv "kongruent" übersetzen kann.Wie dem auch sei, mein Hauptfenster soll dem in ihm liegenden Edit-Fenster einen Text hinzufügen:
void Edit_AddText(HWND hWnd,LPCTSTR lpText) { DWORD dwStart = 0,dwEnd = 0; int nLen = GetWindowTextLength(hWnd); SendMessage(hWnd,EM_GETSEL,(WPARAM)&dwStart,(LPARAM)&dwEnd); SendMessage(hWnd,EM_SETSEL,(WPARAM)nLen,(LPARAM)nLen); SendMessage(hWnd,EM_REPLACESEL,(WPARAM)FALSE,(LPARAM)lpText); SendMessage(hWnd,EM_SETSEL,(WPARAM)dwStart,(LPARAM)dwEnd); return; } Edit_AddText(hEdit,"Hallo"); UpdateWindow(hEdit);So, angenommen jetzt liegt ein anderes Fenster über meinem, aber so, dass ich das Editfeld sehen kann. Dann kommt der Befehl Edit_AddText() aber es passiert nichts. Jetzt fahre ich mit der Maus auf Fenster und schwupp, "Hallo" erscheint. Erscheinen soll es aber sofort, egal ob Vorder- oder Hintergrund.
Was tun?
lg Max
-
Zeichnest du das Edit-Feld selber oder veränderst du es in i-einer form? (abgesehen von AddText () usw...)
-
Öhm ich fange die WM_CTLCOLORSTATIC ab und färbe das Fenster, aber das kanns ja wohl nicht sein.
Der Aufruf sieht ganz einfach so aus:
hEdit = CreateWindow("EDIT",NULL, WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_READONLY|WS_VSCROLL|ES_AUTOVSCROLL, 10,10,570,300,hWnd,NULL,hInstance,NULL);Irgendwas problematisch?
lg Max
PS: Danke für Deine Antworten.
-
öhhmmm welches Fenster? das Edit-Feld oder das Programmfenster?
am CreateWindow Aufruf ist nichts problematisch
-
^^
Mit WM_CTLCOLORSTATIC färbe ich das hEdit:
case WM_CTLCOLORSTATIC: //Hauptfenster-MSG { if ((HWND)lParam == hEdit) { return (LRESULT)CreateSolidBrush(RGB(255,255,255)); //hEdit weiß färben } break; }lg Max
-
achso, dann musste wahrscheinlich noch WM_ERASEBKGND abfangen

-
Hmm gut, sollte kein Problem sein^^
case WM_ERASEBKGND: break;Aber was mach ich letztendlich damit?^^
lg Max
-
wenn ich mich nicht irre, zeichenoperationen ausführen, die dann das edit-feld zeichenen also so mehr oder weniger

vllt. kommt ja mal jmd. vorbei der sowas schonmal gemacht hat und erklärt dir das genauer
-
Hehe, habt Ihr gehört?

Vielen Dank schonmal bis hierher!

lg Max
-
Probier mal noch ein InvalidateRect() vor UpdateWindow().
-
Hey, danke für Deine Antwort.
Hab ich versucht, bringt aber leider nichts.
lg Max