Criando controles em C++

15 Janeiro 2008

Não sabe como criar button, editbox, listbox, radiobutton, groupbox, etc, etc? Eu tive muita dificuldade em achar exemplos de componentes pra c++ na net. Mas aí encontrei sem querer este programa:

Control Spy 2.0 [667 Kb - ele é free]

(mais informações dele aqui)

Com ele você pode visualizar todos os componentes/controles, as suas propriedades e mensagens que enviam. Após visualizar, apenas copie as opções para seu código e pronto.

Os componentes são:

    1. Animation
    2. Button
      1. CheckBox
      2. RadioButton
      3. GroupBox
      4. SplitButton
    3. ComboBox
    4. Date/Time Picker
    5. ListBox
    6. ListView
    7. EditBox (TextBox)
    8. Header
    9. Hot Key
    10. IP Adress
    11. Calendar
    12. Pager
    13. ProgressBar
    14. Rebar
    15. ScrollBar
    16. StatusBar
    17. SysLink
    18. TabControl
    19. ToolBar
    20. ToolTip
    21. TrackBar
    22. TreeView
    23. Numeric Up/Down

      Não sei se esqueci algum. Enfim, é muito útil.


      Controlando evento Click de um botão

      15 Janeiro 2008

      Como sei que cliquei num determinado botão na minha janela?

      Na função WindowProcedure de seu código você vai adicionar as seguinte linhas no switch/case da menssagem:

      case WM_COMMAND: // deve estar dentro de WM_COMMAND
          // o botão que foi clicado
          if (lParam == (LPARAM) hwndButton1)
          {
              // o evento click
              if (wParam == BN_CLICKED)
              {
                  SetWindowText(hwnd, "Você clicou no botão");
              }
          }
      break;

      Baixe um exemplo feito no Code::Blocks, para ajudar.
      Ele está melhor comentado, explicando cada linha.
      *** Baixe aqui [.rar - 5kb] ***


      Biblioteca de recursos

      15 Setembro 2007

      Vamos criar aqui uma biblioteca [.dll] de recursos [resource only] e depois vamos carregá-la e utilizá-la no nosso aplicativo.

      Criando a DLL:

      No Dev-C++:

      1. crie um novo projeto do tipo DLL;
      2. dê o nome que desejar ao projeto, lembrando que o nome do projeto será o nome do arquivo.dll [mas você pode renomear depois];

      3. apague os arquivos que ele cria por padrão: um dll.h e um dllmain.c [ou .cpp];

      4. adicione um arquivo de recurso: Novo > Arquivo de Recurso, e renomeie este novo arquivo .rc [exemplo: resource.rc];

      5. neste arquivo coloque normalmente tudo o que desejar [imagem, icone, som, etc.]. Ex: MEUICONE ICON “meuico.ico”

      6. compile a DLL [Ctrl + F11]. Neste momento acontece um erro, mas não se desespere! Feche o Dev-C++ e abra-o novamente e tente compilar novamente. Desta vez ele compila normalmente [dev-c problema no Dev-C :P ];

      7. Pronto, a .dll de recurso foi gerada. Vamos agora para seu carregamento e uso.

      Carregando e utilizando a DLL:

      Agora vamos carregar e utilizar o ícone que acabamos de colocar na DLL.

      No Dev-C++:

      1. crie um novo projeto do tipo Windows Application, compile [Ctrl+F11].

      2. coloque o arquivo .dll criado anteriormente na mesma pasta do executável gerado agora.

      3. veja o código para carregar e usar[¹].

      4. compile e pronto! execute a aplicação e lá estará nosso ícone da DLL na janela do aplicativo!

      [¹]
      // Procedimento para carregar a DLL
      HINSTANCE hDLL = LoadLibrary(”meudll.dll”);
      if (!hDLL) return -1;
      // se não carregou saimos do programa.

      // Para carregar o icone contido na DLL fazemos:
      wincl.hIcon = LoadIcon (hDLL, “MEUICO”);
      wincl.hIconSm = LoadIcon (hDLL, “MEUICO”);

      Neste exemplo utilizamos apenas um ícone, mas pode ser feito com qualquer recurso, bastando utilizar as funções corretas para carregar cada tipo, por ex, para carregar uma imagem use LoadImage(); e etc.

      É isso, espero que seja útil.

      Baixe um exemplo [13kb]: exemplodll.rar


      Ícone do executável [.exe]

      13 Setembro 2007

      Tenho notado que o ícone do arquivo executável [.exe] é o ícone que apresenta o menor nome na hora de defini-lo no seu arquivo de recursos [.rc], e isso inclui ser caracter em minúsculo. Por exemplo:

      MEUICO ICON “meuicone.ico”
      MEUOUTROICONE ICON “meuicone2.ico”

      “MEUICO” tem menos caracteres que “MEUOUTROICONE”, então ele será escolhido como ícone do executável. Outro exemplo:

      E ICON “meuicone.ico”
      e ICON “meuicone2.ico”

      “e” será o ícone do executável, pois apesar de ter o mesmo número de caracter que “E”, é um caracter minúsculo, levando a preferência.

      No Dev-C++ basta ir em Projeto > Opções do Projeto [ou Alt+P] e na aba Geral no grupo Ícone, procure seu ícone através do botão Navegar e pronto. Este será sempre o ícone que estará no seu arquivo executável.