Ir ao conteúdo

Posts recomendados

Postado

A caixa de diálogo está funcionando corretamente, a única coisa que eu preciso agora é de um comando para focar o cursor no "TextBox" do Nome. O foco precisa ser após o usuário clicar OK ou Salvar.

 

Qual é a melhor maneira de fazer isso?

 

Win3.png.b9baf40ae293e6ef7c169ddda6b4b86

 

Segue o procedimento da caixa:

BOOL CALLBACK WndDialogo(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam){
    int i;
    static int n = 0;

    switch(iMsg){
        case WM_COMMAND:
            switch(LOWORD(wParam)){
                case IDC_SAIR:
                    EndDialog(hWnd, 0);
                    break;

                case IDC_OK:
                    if(n < MAX){
                        GetDlgItemText(hWnd, IDC_NOME, pTabela[n].szNome, 49);
                        GetDlgItemText(hWnd, IDC_IDADE, pTabela[n].szIdade, 19);
                        GetDlgItemText(hWnd, IDC_NOTA, pTabela[n].szNota, 19);
                        n++;
                    }

                    SetDlgItemText(hWnd, IDC_NOME, "");
                    SetDlgItemText(hWnd, IDC_IDADE, "");
                    SetDlgItemText(hWnd, IDC_NOTA, "");
                    break;

                case IDC_SALVAR:
                    if(n && n <= 5){
                        FILE *fp = fopen("registro.txt", "w");

                        for(i = 0; i < n; i++){
                            fprintf(fp, "Nome = %#20s | Idade %02s | Nota %s\n",
                            pTabela[i].szNome, pTabela[i].szIdade, pTabela[i].szNota);
                        }
                        fclose(fp);
                    }

                    if(n == 5) n = 0;

                    break;
            }
        return 1;
    }
    return 0;
}

 

 

E o recurso:

IDR_DIALOGO DIALOG 2, -19, 207, 82
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Registro"
FONT 8, "MS Sans Serif"
{
 DEFPUSHBUTTON "OK", IDC_OK, 148, 6, 50, 14
 PUSHBUTTON "Sair", IDC_SAIR, 148, 24, 50, 14
 PUSHBUTTON "Sobre", IDC_SOBRE, 148, 42, 50, 14
 LTEXT "Nome", -1, 6, 9, 46, 10
 LTEXT "Idade", -1, 6, 37, 31, 9
 LTEXT "Nota", -1, 8, 61, 39, 10
 EDITTEXT IDC_NOME, 33, 5, 98, 13
 EDITTEXT IDC_IDADE, 33, 32, 99, 14
 EDITTEXT IDC_NOTA, 33, 59, 99, 13
}

 

Postado

Você pode utilizar a função  SetFocus para dar foco na window, passando como parâmetro um handle para a Textbox.

 

SetFocus(GetDlgItem(hwnd, ID_TEXTBOX));
SendDlgItemMessage(hwnd, ID_TEXTBOX, EM_SETSEL, 0, -1);

 

Boa sorte.

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!