Como faço para definir o foco para CEdit na caixa de diálogo filho que está dentro de TabCtrl?
-
28-10-2019 - |
Pergunta
Eu tenho uma caixa de diálogo (CDialog) com CTabCtrl desenhado pelo proprietário nela.O conteúdo das guias são diálogos filho (um para cada guia).Existe um CEdit em cada guia.Quando o usuário clica em uma guia, estou ocultando todas as caixas de diálogo filhas usando ShowWindow (SW_HIDE) e mostrando uma selecionada.
O problema é que quando eu tenho, por exemplo, duas guias, clico dentro de uma caixa de edição na primeira guia e, em seguida, alterno para a segunda, o foco de entrada permanece nessa caixa de edição (invisível) na primeira guia, não importa o que eufazer no meu código (tentei chamar todos os métodos que potencialmente podem definir o foco, nada mudou).
Solução
Tente isto:
GetDlgItem(IDC_YOURCONTROL)->SetFocus();
Ou a variável relacionada vinculada ao controle:
m_YOURCONTROLControl.SetFocus();