Wie setze ich den Fokus auf CEdit im untergeordneten Dialogfeld, das sich in TabCtrl befindet?

StackOverflow https://stackoverflow.com/questions/5888883

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).

War es hilfreich?

Lösung

Versuchen Sie Folgendes:

GetDlgItem(IDC_YOURCONTROL)->SetFocus();

Oder die zugehörige Variable, die mit dem Steuerelement verknüpft ist:

m_YOURCONTROLControl.SetFocus();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top