CEdit dynamisch erstellen aber TAB-Reihenfolge beibehalten
-
Hallo!
In einem Dialog habe ich unter anderem ein CEdit Steuerelement, welches zur Passworteingabe dient. Der Benutzer kann mit Hilfe einer CheckBox wählen, ob das Passwort im Klartext oder mit (Windows-)Passwortzeichen dargestellt werden soll. Bei jedem Klick auf die CheckBox muss ich das alte CEdit Steuerelement zerstören und ein neues erstellen mit oder ohne ES_PASSWORD Schalter.
Allerdings geht mir dabei meine TAB-Reihenfolge flöten. Gibt es eine Möglichkeit die Reihenfolge "dynamisch" zu setzen oder es irgendwie zu lösen. Ich wollte jedoch keine 2 CEdit Steuerelemente im Dialog einbinden und je nach Anforderung, das eine anzeigen, das andere ausblenden.
-
SetWindowPos macht das!
-
Martin Richter schrieb:
SetWindowPos macht das!
Wunderbar, danke Martin. Werde ich nachher mal ausprobieren.
-
Oder schau mal hier:
http://www.coding-help.de/eingabefelder.html#Passwort-Modus_im_Eingabefeld-SetPasswordChar()
Wieso muss man das Editfeld zerstören? Kann man das Flag ES_PASSWORD wirklich nur beim Create setzen?
-
AndyDD schrieb:
Oder schau mal hier:
http://www.coding-help.de/eingabefelder.html#Passwort-Modus_im_Eingabefeld-SetPasswordChar()
Wieso muss man das Editfeld zerstören? Kann man das Flag ES_PASSWORD wirklich nur beim Create setzen?Sieht sehr interessant aus. Ich meine mich zu erinnern vieles versucht zu haben das Fenster (CEdit) neu zu zeichnen. WM_PAINT, Invalidate... Was macht RedrawWindow anders?
-
Funktioniert leider nicht bei den Visual Style. Dort ist der dicke Punkt das Passwortzeichen und nicht der Stern. Deshalb *muss* das Control zerstört und neu erstellt werden.
-
HaJo. schrieb:
Funktioniert leider nicht bei den Visual Style. Dort ist der dicke Punkt das Passwortzeichen und nicht der Stern. Deshalb *muss* das Control zerstört und neu erstellt werden.
Da ist der Punkt Standard. Aber was stört dich daran? Muss es denn ein Stern sein? Meine Frage nach dem Zerstören bezog sich auf das Edit und dessen Möglichkeit, Eigenschaftenflags auch nach dem Create zu manipulieren. Habs noch nicht ausprobiert. Funktioniert das denn unter den normalen Styles überhaupt?
-
AndyDD schrieb:
Da ist der Punkt Standard. Aber was stört dich daran? Muss es denn ein Stern sein?
Ich möchte halt den von Windows vorgegebenen Standard verwenden und nicht etwas Eigenes. Bei aktivem Visual Style soll es der Punkt sein. Andernfalls das Windows-Passwortzeichen (Standard: *).
AndyDD schrieb:
Meine Frage nach dem Zerstören bezog sich auf das Edit und dessen Möglichkeit, Eigenschaftenflags auch nach dem Create zu manipulieren. Habs noch nicht ausprobiert. Funktioniert das denn unter den normalen Styles überhaupt?
AndyDD schrieb:
Wieso muss man das Editfeld zerstören? Kann man das Flag ES_PASSWORD wirklich nur beim Create setzen?
Also es funktiniert im Kombination mit Visual Styles nur mit Create. Andernfalls kann SetPasswordChar benutzt werden und man setzt ein Zeichen manuell. Warum das so ist, kann ich nicht genau sagen denn dafür fehlt mir leider das Hintergrundwissen. Ich schätze aber, dass es an den Windows Common Controls, die speziell für das Themeing entwickelt wurden liegt.