Passwort-Editfeld in Klartext darstellen
-
Hallo zusammen,
ich bin auf der Suche nach einer Lösung zu folgendem Problem:Ich habe ein Editcontrol auf meinen Dialog gesetzt, das standardmäßig
als Passwortfeld definiert ist. Nun soll optional über eine andere
Schaltfläche dieses Flag (ich vermute ES_PASSWORD) wieder entfernt, bzw.
erneut gesetzt werden.Ich habe mir gedacht ich mache es wie folgt:
if (GetDlgItem(IDC_EDIT6)->GetStyle()& ES_PASSWORD) { MessageBox("pwd-flag gesetzt!"); } else { MessageBox("pwd-flag NICHT gesetzt!"); }
Nun möchte ich entsprechend dieses Flag entfernen, damit man das
Passwort im Klartext überprüfen kann und dachte an sowas:GetDlgItem(IDC_EDIT6)->ModifyStyle(ES_PASSWORD,0,0);
Allerdings wird man ja dann noch irgendwie das Control updaten müssen.
Wie mache ich das
-
ganz einfach:
GetDlgItem(IDC_EDIT6)->UpdateWindow();
-
Hallo MiP,
du hast recht, der Style wird gesetzt nur erhalte ich die Daten im Editfeld
nicht im Klartext. Nun dachte ich daran irgendwie das Editfeld upzudaten, da scheitere ich allerdings. Es bleiben weiterhin munter die Sternchen stehen.
Hast du da auch eine Idee für?
-
aus:
GetDlgItem(IDC_EDIT6)->SetPasswordChar(0);
an:
GetDlgItem(IDC_EDIT6)->SetPasswordChar('*');
-
Hi, in der Memberbeschreibung der MSDN ist SetPasswordChar nicht zu finden (ist kein Eelement von CWnd).
Ich kann es also nur direkt mit der Membervariable zum Control verwenden soweit
ich gesehen habe. Aber das funktioniert! Von mir 5 Sterne für die kompetente
HilfeP.S.: Sonst müsste ich wohl irgendwie nen Zeiger auf's CEdit holen oder?
-
Ja, hast Recht, ist Memberfunktion von CEdit. Aber so gehts:
((CEdit*)GetDlgItem(IDC_EDIT6))->SetPasswordChar(0);
-
Komisch ist dann aber, dass ich scheinbar erst mit dem Cursor über das Editfeld fahren muss,
damit der Klartext auch angezeigt wird. Alsob UpdateWindow nicht wirklich alles aktualisiert...
-
GetDlgItem(IDC_EDIT6)->RedrawWindow();
-
Mercy!! Du hast nicht zufällig zu diesem Thread auch eine Antwort für mich? *g*