002
06.04.2015, 16:34 Uhr
~f.-th.
Gast
|
Hier mal etwas im Borland-Stil für Konsole unter Windows ab 2000:
Die Header Datei:
C++: |
// borland-like Konsolen-Funktionen
#ifndef coniobor_h #define coniobor_h
typedef short cord; // wert für Koordinaten typedef const unsigned int Uint; // Farbwerte
enum color {BLACK, BLUE, GREEN, CYAN, RED, VIOLET, BROWN, LIGHTGREY, DARKGREY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE};
void clrscr(); void gotoxy(cord x, cord y);
int textcolor(Uint color); int backgroundcolor(Uint color); int consolecolor(int textcolor, int backgroundcolor);
int blackandwhite();
#endif
|
und der dazugehörige C-Quelltext:
C++: |
// borland-like Konsolen-Funktionen
#include <windows.h> #include "coniobor.h"
int ccolor = 0x80; void clrscr() { COORD coord; DWORD written; CONSOLE_SCREEN_BUFFER_INFO info; coord.X = coord.Y = 0; HANDLE std = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(std, &info); FillConsoleOutputCharacter(std,' ',info.dwSize.X*info.dwSize.Y,coord,&written); coord.X = coord.Y = 0; SetConsoleCursorPosition(std, coord); } void gotoxy(cord x, cord y) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X=x-1; // speichert X Position pos.Y=y-1; // speichert Y Position SetConsoleCursorPosition(hCon, pos); // Cursorposition
}
int textcolor(Uint color) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); ccolor = (ccolor & 11110000) + color; SetConsoleTextAttribute(hCon, ccolor); return(ccolor); }
int backgroundcolor(Uint color) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); ccolor = (ccolor & 00001111) + (color << 4); SetConsoleTextAttribute(hCon, ccolor); return(ccolor); }
int consolecolor(int textcolor, int backgroundcolor) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); ccolor = textcolor + (backgroundcolor << 4); SetConsoleTextAttribute(hCon, ccolor); return(ccolor); }
int blackandwhite() { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon, 0x0F); return 0; }
|
Ist zwar in pur C sollte aber für die genannten Zwecke reichen.
Irgendwo im Netz gibt es auch eine Variante, die das in C++ umsetzt.
Hoffe mal das das ohne Vorschau passt. |