Im Dialog, Focus auf CEdit setzen?
-
hallo,
also ich habe ein Dialog mit dem Wizard erstellt, also als Resource,
dieser Dialog enthält einen statischen Text und ein CEdit und natürlich
ein OK und ein Abbrechen Button.Wenn ich nun den Dialog in meinem Programm aufrufe, möchte ich gerne,
das der Focus auf den CEdit gesetzt wird ...aber wie?
-
habe ich gerade gefunden, und es funktioniert
1. Das Element ist durch eine Dialogfeld-Ressource definiert.
Besorge dir einen Zeiger auf das Element. Jedes Element in der Ressource bekommt eine ID zugeordnet (rechte Maustaste->Eigenschaften), z.B. IDC_EDIT1. Du sprichst das Element als allg. Fenster an:
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
Mittels dieses Zeigers kannst Du nun den Focus setzen:
pWnd->SetFocus();
2. Du hast das Element dynamisch erzeugt, z.B.
CEdit m_ed;m_ed.Create(...);In diesem Falle besorgst Du Dir den Zeiger mittels
CWnd* pWnd=&m_ed;
pWnd->SetFocus();Aber am einfachsten ist es, die Ressource zu öffnen und unter "Layout"-"Tabulator-Reihenfolge" festzulegen, in welcher Reihenfolge die Elemente mittels TAB durchlaufen werden sollen. Das Element mit der Nummer 1 hat dann beim Öffnen des Dialogfeldes den Focus.