sexta-feira, 13 de outubro de 2017

Menu com clickes do mouse - Linguagem C

Mesmo não sendo originalmente orientado a objetos,
O C possui diversas bibliotecas gráficas criadas
por terceiros com a finalidade de proporcionar,
maior facilidade no aprendizado da linguagem.
Todos devem entender que é praticamente impossível
criar programas mais complexos para serem exibidos 
na tela do dos.
Se o estudante de linguagem C não procurar meios de
usar estas bibliotecas e ficar sempre preso na telinha
preta, pode ter certeza que seus conhecimentos serão
limitados, por não haver meios de progredir.
Minha indicação é começar usando a conio, para formatações
dos textos na saída do vídeo, e depois de um bom conhecimento,
migrar para uma das várias bibliotecas gráficas disponível.
O programa que apresento aqui, faz uso da biblioteca 
graphics.h, para utilização do mouse, cores e posicionamento
na janela, esta biblioteca possui muitas outras funções
mas para a criação do nosso menu não se fez necessário.

Veja abaixo algumas imagens do programa em execução:






Veja abaixo o código programa:

#include <graphics.h>
int  menu_um;
void imp_jan ( int x, int y, int lin, int col, int n ) {
     for ( int i = 0; i <= n; i++ ) {
         line ( x + i, y, x + i, y + lin );
         line ( x + col + i, y, x + col + i, y + lin );
         line ( x, y + i, x + col, y + i );
         line ( x, y + i + lin, x + col + n, y + i + lin );
     }
}
int main ( );
void menu_1 ( ) {
     clearviewport ( );
     setcolor ( LIGHTGREEN );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 1 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "BEM VINDO AO MENU 1");
     getch ( );
     closegraph ( );
     main ( );
}
void menu_2 ( ) {
     clearviewport ( );
     setcolor ( LIGHTBLUE );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 1 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "BEM VINDO AO MENU 2");
     getch ( );
     closegraph ( );
     main ( );
}
void menu_3 ( ) {
     clearviewport ( );
     setcolor ( LIGHTRED );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 1 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "BEM VINDO AO MENU 3");
     getch ( );
     closegraph ( );
     main ( );
}
void use_mouse ( ) {
     if ( ismouseclick ( WM_LBUTTONDOWN ) ) {
         int x_clicked, y_clicked;
         getmouseclick ( WM_LBUTTONDOWN, x_clicked, y_clicked );
         if ( ( 90 <= x_clicked ) && ( x_clicked <= 120 ) ) {
              if ( ( 131 <= y_clicked ) && ( y_clicked <= 141 ) )
                   menu_um= 1;
              else if ( ( 161 <= y_clicked ) && ( y_clicked <= 181 ) )
                   menu_um = 2;
              else if ( ( 191 <= y_clicked ) && ( y_clicked <= 211 ) )
                   menu_um = 3;
              else if ( ( 221 <= y_clicked ) && ( y_clicked <= 241 ) )
                   menu_um = 4;
         } else menu_um = -1;
     }
     if ( ismouseclick ( WM_LBUTTONDBLCLK ) ) {
         clearmouseclick ( WM_LBUTTONDBLCLK );
         if ( menu_um == 1 ) {
              menu_1  ( );
         }
         if ( menu_um == 2 ) {
              menu_2  ( );
         }
         if ( menu_um == 3 ) {
              menu_3  ( );
         }
         if ( menu_um == 4 ) {
              clearviewport ( );
              setcolor ( 0 );
              imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
              settextstyle ( 0, 0, 13 );
              settextstyle ( GOTHIC_FONT, 0, 2 );
              setcolor ( 12 );
              outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
              settextstyle ( SIMPLEX_FONT, 0, 1 );
              setcolor ( BROWN );
              outtextxy ( 130, 280, "Por: " );
              setcolor ( BLACK );
              outtextxy ( 180, 280, "Samuel Lima" );
              setcolor ( BLUE );
              outtextxy ( 130, 300, "sa_sp10@hotmail.com" );
              setcolor ( LIGHTRED );
              outtextxy ( 200, 350, "MUITO OBRIGADO" );
              getch ( );
              exit ( 1 );
         }
     }
}
void menu_principal ( ) {
     clearviewport ( );
     setcolor ( GREEN );
     imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 );
     settextstyle ( 0, 0, 13 );
     settextstyle ( GOTHIC_FONT, 0, 2 );
     setcolor ( 12 );
     outtextxy ( 110, 40, "MENU CLICKES DO MOUSE");
     settextstyle ( SIMPLEX_FONT, 0, 2 );
     setcolor ( LIGHTBLUE );
     outtextxy ( 130, 70, "Escolha uma opção abaixo");
     settextstyle ( 0, 0, 13 );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 131, "1 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 131, "Menu 1" );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 161, "2 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 161, "Menu 2" );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 191, "3 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 191, "Menu 3" );
     setcolor ( LIGHTMAGENTA );
     outtextxy ( 100, 221, "4 - " );
     setcolor ( LIGHTBLUE );
     outtextxy ( 150, 221, "Sair" );
     while ( 1 ) {
         if ( !kbhit ( ) )
              use_mouse ( );
     }
}
int main ( ) {
     initwindow ( 603, 403, "MENU CLICKES DO MOUSE");
     setbkcolor ( WHITE );
     menu_principal ( );
     closegraph ( );
}



Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.