Come imposto lo stato attivo su CEdit nella finestra di dialogo figlio che si trova all'interno di TabCtrl?
-
28-10-2019 - |
Domanda
Ho una finestra di dialogo (CDialog) con CTabCtrl disegnato dal proprietario al suo interno.I contenuti delle schede sono finestre di dialogo secondarie (una per ciascuna scheda).C'è un CEdit in ogni scheda.Quando l'utente fa clic su una scheda, nascondo tutte le finestre di dialogo secondarie utilizzando ShowWindow (SW_HIDE) e ne mostro una selezionata.
Il problema è che quando ho, ad esempio, due schede, fai clic all'interno di una casella di modifica nella prima scheda e poi passa alla seconda, lo stato attivo dell'input rimane su quella casella di modifica (invisibile) nella prima scheda, indipendentemente da ciò che hodo nel mio codice (ho provato a chiamare tutti i metodi che potenzialmente possono mettere a fuoco, non è cambiato nulla).
Soluzione
Prova questo:
GetDlgItem(IDC_YOURCONTROL)->SetFocus();
O la variabile correlata collegata al controllo:
m_YOURCONTROLControl.SetFocus();