Wie setze ich den Fokus auf CEdit im untergeordneten Dialogfeld, das sich in TabCtrl befindet?
-
28-10-2019 - |
Frage
Ich habe ein Dialogfeld (CDialog) mit der vom Eigentümer gezeichneten CTabCtrl.Der Inhalt von Registerkarten ist ein untergeordneter Dialog (einer für jede Registerkarte).In jeder Registerkarte befindet sich ein CEdit.Wenn der Benutzer auf eine Registerkarte klickt, verstecke ich alle untergeordneten Dialoge mit ShowWindow (SW_HIDE) und zeige ein ausgewähltes an.
Das Problem ist, dass wenn ich zum Beispiel zwei Registerkarten habe, in ein Bearbeitungsfeld auf der ersten Registerkarte klicke und dann zur zweiten wechsle, der Eingabefokus auf diesem (unsichtbaren) Bearbeitungsfeld auf der ersten Registerkarte bleibt, egal was ich binin meinem Code tun (versucht, alle Methoden aufzurufen, die möglicherweise den Fokus setzen können, nichts geändert).
Lösung
Versuchen Sie Folgendes:
GetDlgItem(IDC_YOURCONTROL)->SetFocus();
Oder die zugehörige Variable, die mit dem Steuerelement verknüpft ist:
m_YOURCONTROLControl.SetFocus();