04/09/05 21:35
skirk
#include <windows.h>
BOOL SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD dwCursorPosition);
hConsoleOutput
dwCursorPosition
typedef struct _COORD {
SHORT 32;
SHORT 12;
} COORD, *PCOORD;
Dovrebbe essere cos
aaa
05/09/05 10:14
Rand
hConsoleOutput e dwCursorPosition sono gli argomenti accettati dalla funzione.
Il primo (hConsoleOutput) pu? assumere due valori:
- GENERIC_READ => richiede l'accesso (in lettura) al buffer della console, abilitando il processo di lettura.
- GENERIC_WRITE => fa lo stesso ma per la scrittura (es. se devi cambiare colore ad una determinata porzione di testo, o quello dello sfondo, ecc..)
Il secondo dwCursorPosition invece, rappresenta le coordinate del cursore nello schermo e viene utilizzato tramite una struttura (come quella che ti ho gi? postato).
aaa
05/09/05 10:38
Rand
Ecco qua un esempio di come si usa la "nuova funzione gotoxy"
#include <stdio.h>
#include <windows.h>
//definisco l'handle per la scrittura sul buffer console dei nuovi attributi
HANDLE Hout;
//struttura che contiene gli attributi correnti della console (colore testo, colore sfondo, posizione X cursore, posizione Y, ecc..)
CONSOLE_SCREEN_BUFFER_INFO ConsoleInfo;
int main();
int randgotoxy(int x, int y);
int main() {
//ottengo l'handle
Hout = GetStdHandle(STD_OUTPUT_HANDLE);
randgotoxy(12,12);
printf("#### Nuova Gotoxy ####\n\tBy Rand(rand@hackernetwork.com)\n\n"
;
system("pause"
;
return 0;
}
int randgotoxy(int x, int y) {
//setto le nuove coordinate del cursore...
ConsoleInfo.dwCursorPosition.Y = x;
ConsoleInfo.dwCursorPosition.X = y;
//chiamo la funzione che aggiorna il buffer della console, con i nuovi attributi
SetConsoleCursorPosition(Hout,ConsoleInfo.dwCursorPosition);
}
...se hai domande chiedi pure!
Ultima modifica effettuata da Rand 05/09/05 10:45
aaa
06/09/05 16:21
hedo
Aggiungo solo che di questa API faccio largamente uso in Snake per spostare il cursore e ogni tanto, molto casualmente, diventa scarsamente performante... nn lo avete mai notato?
HeDo
aaa