none
Exemplo de click de botao em c++ win32 puro.

    Question

  •  

    Galera, boa noite.

    Alguem sabe me indicar um link q contenha um exemplo de click de botao com o manipulador do evento em c++ win32 (nao mfc ou clr)?

     

    []'s.

    Vlw.

    Wednesday, May 07, 2008 8:54 PM

Answers

  • Imagino que voce esteja falando de um DialogBox.

     

    Ao cria-lo, voce precisa definir uma função callback DlgProc(..), aonde voce rebece os eventos de janela, accelerators, mouse, teclado do dialog.

     

    Um botão é uma child window inserida no Dialog, e ao ser clickado, ele envia para o DlgProc(..) do seu parent(o dialog) a notificação BN_CLICKED na mensagem WM_COMMAND.

     

    Informações sobre BN_CLICKED:

    http://msdn.microsoft.com/en-us/library/bb761825(VS.85).aspx

     

    Seu DlgProc para tratar qualquer click de botão, sem identificá-lo, seria algo como:

     

    Code Snippet

    INT_PTR CALLBACK MyDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )

    {

        long nRet = 0;

     

        switch uMsg

        {

            case WM_COMMAND:

                // Algum botão foi clickado??

                if( HIWORD( wParam ) == BN_CLICKED )

                {

                    MessageBox( hwndDlg, _T( "BN_CLICKED" ), _T( "Botão"), MB_OK );

                }

                nRet = 1;

                break;

        }

        return nRet;

    }

     

     

     

    Vendo no MSDN, voce pode ver como usar as outras informações do BN_CLICKED para saber qual botão foi clickado.

     

     

    Abraços, cox

    Wednesday, May 07, 2008 11:00 PM

All replies

  • Imagino que voce esteja falando de um DialogBox.

     

    Ao cria-lo, voce precisa definir uma função callback DlgProc(..), aonde voce rebece os eventos de janela, accelerators, mouse, teclado do dialog.

     

    Um botão é uma child window inserida no Dialog, e ao ser clickado, ele envia para o DlgProc(..) do seu parent(o dialog) a notificação BN_CLICKED na mensagem WM_COMMAND.

     

    Informações sobre BN_CLICKED:

    http://msdn.microsoft.com/en-us/library/bb761825(VS.85).aspx

     

    Seu DlgProc para tratar qualquer click de botão, sem identificá-lo, seria algo como:

     

    Code Snippet

    INT_PTR CALLBACK MyDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )

    {

        long nRet = 0;

     

        switch uMsg

        {

            case WM_COMMAND:

                // Algum botão foi clickado??

                if( HIWORD( wParam ) == BN_CLICKED )

                {

                    MessageBox( hwndDlg, _T( "BN_CLICKED" ), _T( "Botão"), MB_OK );

                }

                nRet = 1;

                break;

        }

        return nRet;

    }

     

     

     

    Vendo no MSDN, voce pode ver como usar as outras informações do BN_CLICKED para saber qual botão foi clickado.

     

     

    Abraços, cox

    Wednesday, May 07, 2008 11:00 PM
  • Cara, certinho.

    Vlw pela dica.

    Abraco.

    Thursday, May 08, 2008 12:16 PM