-
Notifications
You must be signed in to change notification settings - Fork 0
/
consola.h
118 lines (96 loc) · 3.42 KB
/
consola.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/* Funcoes da consola. Dez 2010 */
/* Pequenas correcoes. Nov. 2013 */
/* Comentarios melhorados. Dez. 2015 */
#ifndef __CONSOLA_H__
#define __CONSOLA_H__
#include <windows.h>
class Consola {
HANDLE hconsola;
HANDLE hStdin;
HWND hwnd;
public:
// para usar nas cores
const static int PRETO = 0;
const static int AZUL = 1;
const static int VERDE = 2;
const static int CYAN = 3;
const static int VERMELHO = 4;
const static int ROXO = 5;
const static int AMARELO = 6;
const static int BRANCO = 7;
const static int CINZENTO = 8;
const static int AZUL_CLARO = 9;
const static int VERDE_CLARO = 10;
const static int CYAN_CLARO = 11;
const static int VERMELHO_CLARO = 12;
const static int COR_DE_ROSA = 13;
const static int AMARELO_CLARO = 14;
const static int BRANCO_CLARO = 15;
// para usar em getch
const static char ESQUERDA = 1;
const static char DIREITA = 2;
const static char CIMA = 3;
const static char BAIXO = 4;
const static char ENTER = 13;
const static char ESCAPE = 27;
//const static char S = ;
//const static char N = ;
Consola();
// Posiciona o cursor na posição x,y
// - Os proximos cout/cin serão feitos a partir daí
void gotoxy(int x, int y);
// Limpa o ecrã
// - Usa a côr de fundo que estiver definida
void clrscr();
// Muda a côr das letras
// - Os cout/cin seguintes usarão essa côr
void setTextColor(WORD color);
// Muda a côr de fundo
// - Os printf/cout seguintes usarão essa côr
// - Os clrsrc() seguintes usarão essa côr de fundo
void setBackgroundColor(WORD color);
// Muda a dimensão do ecrã para NLinhas x NCols
// - O redimensionamento pode falhar se o tamanho
// indicado for excessivo ou se for demasiado
// pequeno
// - Limpa o ecrã usando a côr que estiver definida?
void setScreenSize(int nLinhas, int nCols);
// Muda (tenta mudar) o tamanho da letra
// - Esta função pode falhar em determinadas situações
// (falhar = não muda nada)
// É mais provável falhar no sistemas antigos (XP)
// - Ver também setSTextSizeXP
void setTextSize(int x, int y);
// Muda (tenta mudar) o tamanho da letra para XP (alguém ainda usa isso?)
// - Esta função é para usar apenas no caso do sistema
// ser o XP
// No outros sistemas existe a função setTextSize
// - Pode falhar em determinadas situações
// (falhar = não muda nada)
// - Ver também setSTextSizeXP
void setTextSizeXP(int x, int y);
// Lê um caracter sem precisar de "enter" no fim
// - Util para fazer pausas do tipo
// "press any key to continue"
// - Esta funcionalidade também se consegue de
// outras formas
char getch(void);
// As duas funções seguintes são pouco interessantes
// Desenha uma linha usando pixeis (não é com caracteres)
// - Esta é uma função gráfica. Trabalha com pixeis
// - Os pixeis da linha ficam sobrepostos ao texto
// Esta função é pouco interessante porque:
// - A linha não fica memorizada. Desaparece quando:
// . Se oculta e volta a mostrar a janela da consola
// . Se redimensiona a janela
void drawLine(int x1, int y1, int x2, int y2, int cor);
// Desenha um círculo usando pixeis (não é com caracteres)
// - Esta é uma função gráfica. Trabalha com pixeis
// - Os pixeis do círculo ficam sobrepostos ao texto
// Esta função é pouco interessante porque:
// - O círculo não fica memorizado. Desaparece quando:
// . Se oculta e volta a mostrar a janela da consola
// . Se redimensiona a janela
void drawCircle(int X, int Y, int R, int Pen, int Fill);
};
#endif