Fokus auf Button



  • Hi, ich hoffe, dass mein Problem nicht schon 1000mal gelöst wurde, aber die Suchfunktion geht leider grad nicht...

    Ich habe meine OnOK() Funktion überschrieben und einen neuen Button eingefügt der mein Programm beenden kann. Jetzt hab ich das Problem, dass der Fokus, wenn ich nicht gerade einen anderen Button ausgewählt, sondern gerade etwas in ein Editfeld schreibe, sofort wieder auf mein Beenden-Button fällt. So wird das Programm sofort beendet, falls man in der Edit Box Enter drückt. Wie schaff ich es also, dass mein Beenden-Button nicht den Default-Fokus erhält oder sobald der Cursor in einer Editbox steht ein anderer Button ausgewählt wird?

    Hat das mit dem InitDialog return TRUE zu tun??



  • Hi,
    ich verweise einfach mal auf den artikel aus den FAQ, da steht eigentlich genau drinne was du machen musst.
    http://www.c-plusplus.net/forum/viewtopic.php?t=39095
    Hoffe mal das hilft dir.

    mfg rekursiv



  • Aloha,

    du kannst den Fokus im InitDialog setzen indem du z.B.

    GetDlgItem(IDC_EDIT1)->SetFocus();
    return FALSE;
    

    zweitens wäre ein Häkchen bei "Return möglich" in den Editbox-eigenschaften von Vorteil, wenn Du mit Enter arbeiten willst. 🙂

    Alles weitere ergibt sich.

    Grüße

    BOA



  • Die "default button" eigenschaft des buttons wegnehmen, oder so...



  • proga schrieb:

    Die "default button" eigenschaft des buttons wegnehmen, oder so...

    Thx, das war am Ende genau wonach ich gesucht hatte! Ich konnte zwar den Fokus mit SetFocus() setzen, doch wenn ich eine EditBox benutzt habe, war sofort wieder die Standardschaltfläche ausgewählt (allerdings ohne die gestrichelte Linie von der Fokusauswahl).

    Jetzt klappts auch mit den Buttons. "Return möglich" brauchte ich übrigens nicht, da in die EditBoxen nur (einzeilige) Zahlen sollen und ich OnOK() überschrieben habe. Trotzdem danke für den Tip!


Anmelden zum Antworten