CEdit und Enter
-
Hallo erstmal.
Also...
ich will ein CEdit haben, das den Style ES_PASSWORD hat, aber allerdings auch auf die Taste Enter reagiert.
Das schliesst sich allerdings aus.
Also habe ich eine Klasse von CEdit abgeleitet und dort OnKeyDown() überschrieben.Nun ja...
bei allen Tasten ausser Enter funktioniert es, aber auf Enter reagiert er nicht
obwohl ich mit Spy++ nachgesehen hab und definitiv eine Message gesendet wird.Ich hab alles ausprobiert und jede virtuelle Funktion
(WndProc usw.) überschrieben, aber s funzt net.Hat jemand eine Idee woran es liegen könnte.
Danke schon mal im voraus.
-
Meinst du jetzt das du enter aktiviert hast, oder das es mehrzeilig ist ?
Devil
-
Man kann das im Ressourceneditor einstellen:
z.B. mehrzeilig, return möglich etc.
Wenn du jetzt dort in die Hilfe siehst, dann kann man erkennen das es nicht möglich ist ein Multiline-Editfeld mit einem Passwort-Stil zu verschlüsseln.
Und ohne Multiline, so steht es dort, wird die Entertaste ignoriert.
-
hm, wie siehts mit RichEdit aus ?
Devil
-
Noch nicht probiert...
Es geht nur darum, das bei drücken der Entertaste zwar WM_KEYDOWN an das Feld gesendet wird, aber ich es irgendwie nicht abgefangen wird.Dazu wäre ein Single-Line CEdit ausreichend.
-
Hallo zusammen.
Ich hab das Problem mit der Entertaste, wo viele mit ein Problem haben, ganz simpel gelöst:
In der standartmäßigen OnOK() Funktion einfach diese Zeilen einfügen:
CWnd *wnd=GetFocus(); int ctrlID=wnd->GetDlgCtrlID(); switch(ctrlID) { case IDC_FELDXYZ: // Befehl break; case IDC_EDIT1: // Befehl break; }
Und vielleicht noch den CDialog::OnOk() ausklammern. Wie seht ihr das?
[ Dieser Beitrag wurde am 09.04.2003 um 14:13 Uhr von hronny editiert. ]
-
CWnd *wnd=GetFocus();
int ctrlID=wnd->GetDlgCtrlID();Programmierst du wirklich so? Ich finde das ziemlich gefährlich.
-
Programmierst du wirklich so? Ich finde das ziemlich gefährlich.
Warum?
Wer hat ein besseres Beispiel?
-
man prüft ja wohl erstmal den zeiger bevor man darauf eine methode aufrufst.
-
Beowulf: PreTranslateMessage
-
@hronny: Da der Rückgabewert von GetFocus() auch NULL sein kann, würde Dein Code-Beispiel nicht gut funktionieren.
Aber ob hier im Forum immer astreine Programm-Beispiele eingebracht werden müssen, ist wieder was anderes, es geht ja nur um's Prinzip, den Rest muss man/frau sich selbst dazuprogrammieren.
-
Shaggy ist ganz meiner Meinung :p
Wenn NULL kommt, kann es ja nicht ausgewertet werden. Kann man sonst irgendwie anders die ControlID abfragen?