Fokus auf Editbox



  • Hallo,
    Ich habe ein Problem :
    Ich kann eine Editbox nicht fokussieren.
    Mein jetziger Code:

    SetFocus( GetDlgItem(hwndDlg, IDC_EDITBOX) );
    

    Wo liegt der Fehler? Ich hab auch überprüft, ob GetDlgItem einen falschen Wert (NULL) zurückliefert : Wert ist gültig. Hab auch schon SetForegroundWindow probiert, gleiches Ergebnis.
    Kann mir jemand helfen?
    Falls es was bringt : SetFocus rufe ich bei der Notification WM_INITDIALOG auf (ich bin davon ausgegangen, dass es möglich ist)
    Danke schon mal im voraus.



  • Der Aufruf ist glaube ich zu früh...
    Aber warum machst Du es überhaupt so kompilziert? Setze einfach die Z-Order im Resoruce-Editor richtig, dann sollte das erste Control automatisch den Focus bekommen. Und wenn das Eingabefeld den Focus haben soll, dann mache diese einfach zum ersten Control!



  • Danke erstmal für die Antwort 🙂
    Die Editbox hat die niedrigste ID-Nummer im Dialog, dennoch wird es nicht fokussiert (ausgenommen die Dialog-ID, die ist niedriger).
    Wie kann ich die Nachricht ein wenig später schicken? Über einen Timer würde es ja praktisch gehen, aber nicht ein wenig zu umständlich?



  • Was redest du auf einmal von IDs?



  • Mit der ID hat das nichts zu tun, sondern mit der Z-Order!
    Im VC2003 Ressource-Editor kannst DU die ändern mit Menü: "Format|Tab Order".
    In VC6 ist dieser Eintrag glaube ich im "View" Menü versteckt...



  • Sorry, hab das damit irgendwie verbunden. Funzt jetzt auf jeden Fall.
    Falls es noch jemanden interessiert : Es hat bei mir erst geklappt, nachdem ich TRUE bei der WM_INITDIALOG Notification zurückgegeben habe (Wenn WM_INITDIALOG nicht abgefangen wird, funktioniert es nicht, bei mir zumindest nicht).
    Danke für die Hilfe


Anmelden zum Antworten