Hallo Sherlock,
wie genau meinst du das? Also der CueText steht ja gar nicht drin, sondern wird einfach nur "drübergepinselt".
Wie gesagt, das funktioniert alles. Nur hab ich das Problem, das halt der selbst eingegebene Text verschwindet, wenn das Control den Fokus wiedererlangt.
Wenn man dann den darin stehenden Text markiert oder ebend um einen Buchstaben ergänzt (oder aber auch löscht) erscheint er wieder. der Text steht also noch im Control, es macht aber den Anschein als würde der Text in der Farbe des Controls eingefärbt wenn es den Fokus wiedererlangt.
Der Effekt ist auch vorhanden, wenn ich alles ausklammer in der OnPaint Methode und quasi nur dieses übrig lasse:
Delphi-Quellcode:
function MemoWndProc(hEdit: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT;
stdcall;
var
rc: TRect;
OldFont: HFONT;
S:
string;
DC: HDC;
PaintStruct: TPaintStruct;
begin
case uMsg
of
WM_PAINT:
begin;
DC := BeginPaint(hEdit, PaintStruct);
EndPaint(hEdit, PaintStruct);
Result := 0;
end
else
Result := CallWindowProc(OldWndProc, hEdit, uMsg, wParam, lParam);
end;
end;
Wo kann denn dort nen Fehler sein, das verstehe ich nicht.
Edit:
Also ich bin jetzt schon mal so weit zu sagen, das es an dem
or ES_MULTILINE
liegt:
CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', '', WS_CHILD or WS_VISIBLE or WS_VSCROLL {or ES_MULTILINE }or ES_NOHIDESEL or ES_WANTRETURN, 5, 155, 200, 110, hWnd, IDC_MEMO2, hInstance, nil);