Edit Feld
-
Hallo,
wie kann ich einem Edit Feld einen Fokus geben, das der Cursor drinnen blinkt?
SetFocus() funktioniert nicht
-
Gibts ja nicht das niemand das weiß
-
Mit WM_SETFOCUS.
Siehe auch:
"About Edit Controls": http://msdn.microsoft.com/en-us/library/bb775456.aspx
"Using Edit Controls": http://msdn.microsoft.com/en-us/library/ms997530.aspx
"Edit Controls" http://msdn.microsoft.com/en-us/library/ms997530.aspxMartin
-
Ich schicke: SendMessage(edit, WM_SETFOCUS, 0, 0)
Im Edit blinkt es, nur das ich nicht schreiben kann. Ist jetzt irgendwie Schreibgeschützt.
Auch nochmaliges reinklicken mit der Maus bringt nichts.
-
Hast Du den ES_READONLY-Stil gesetzt?
Martin
-
Nein hab ich nicht gesetzt.
Es liegt an der WM_SETFOCUS
Lasse ich diese Weg kann ich wieder schreiben.
-
Mmacher schrieb:
Mit WM_SETFOCUS.
Siehe auch:
"About Edit Controls": http://msdn.microsoft.com/en-us/library/bb775456.aspx
"Using Edit Controls": http://msdn.microsoft.com/en-us/library/ms997530.aspx
"Edit Controls" http://msdn.microsoft.com/en-us/library/ms997530.aspxMartin
NEIN! WM_SETFOCUS darf man nicht selbst senden, es ist nur als Benachrichtigung gedacht! Man darf dafür SetFocus verwenden!
http://blog.m-ri.de/index.php/2007/12/24/die-unsitte-windows-interne-nachrichten-zu-versenden/
-
Mit SetFocus macht er aber nichts.
-> kein Blinken im Edit Feld
-
Da hat Martin Richter absolut recht: SetFocus() und nicht WM_SETFOCUS verwenden.
Nun zu Deinem Problem:
Kann es sein, daß Dein Text limit evtl. auf 0 oder auf einen anderen unsinnigen Wert gesetzt ist?Mit EM_GETLIMITTEXT kannst Du's herausfinden, bzw. mit EM_SETLIMITTEXT setzen.
Ansonsten: Lese die Grundlagen (siehe meine 3 Links) gründlich durch.
Martin
-
Nachtrag: Was passiert eigentlich wenn Du mit der Maus aufs Edit-Feld klickst (bzw. mit der Tab-Taste aufs Edit-Feld springst)?
Gleiches Phänomen?Machst Du das in einer Dialogbox?
Martin