Como faço para definir o foco para CEdit na caixa de diálogo filho que está dentro de TabCtrl?

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

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

Foi útil?

Solução

Tente isto:

GetDlgItem(IDC_YOURCONTROL)->SetFocus();

Ou a variável relacionada vinculada ao controle:

m_YOURCONTROLControl.SetFocus();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top