C ohne MFC: Inhalt eines Textfeldes markieren

HansJ

Mitglied
Hallo,
ich möchte den Inhalt eines Textfeldes zum Überschreiben markieren.

Ich schreibe z.B. eine 1 in das Testfeld, dann setze ich den Focus in das Feld.
Nun sollte die 1 markiert sein so das ich mit der Eingabe einer Zahl die Vorgabe überschreiben.

Code:
TCHAR szMenge[5] = TEXT("1");
...
Edit_SetText(hctl_EDIT_Menge, szMenge);
SetFocus(hctl_EDIT_Menge);

Hans
 
Das kannst Du machen, indem Du eine EM_SETSEL Nachricht an das Editfeld schickst. wParam ist hierbei der Index des ersten zu markierenden Zeichens, lParam der Index des letzten zu markierenden Zeichens.
 
Gleiches Prinzip: hier heisst die Message EM_SETREADONLY. Für wParam TRUE oder FALSE verwenden und lParam gleich 0 setzen.
 
Ich bin mir da nicht sicher, aber ich glaube, das geht nur über den DC mit der SetTextColor-Funktion.
Wenn's einer besser weiß, ich bin für alles offen (zumindest in diese Hinsicht ;-))
 
Dafür musst du in deiner Hautptnachrichenschleife die Message WM_CTLCOLOR verabeiten.
Der Parameter "wParam" enthält den Device Context (HDC) und "lParam" das Fensterhandle (HWND) des jeweiligen Controls.
Wenn das richtige Fensterhandle kommt (also dein Editfeld), kannst du mit SetTextColor() die Textfarbe setzen.

Gruß
MCoder
 
Zurück