53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
#include <c_WinUI_Console.h>
|
|
|
|
static void BlankLine(HANDLE hOut, int y) {
|
|
DWORD NumWritten;
|
|
COORD c;
|
|
c.X = 0;
|
|
c.Y = y;
|
|
FillConsoleOutputCharacter(hOut, ' ', 80, c, &NumWritten);
|
|
}
|
|
|
|
void c_WinUI_Console_ClearScreen() {
|
|
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
for (int i=0; i<25; i++) {
|
|
BlankLine(hOut, i);
|
|
}
|
|
c_WinUI_Console_GotoXY(0, 0);
|
|
}
|
|
|
|
void c_WinUI_Console_WriteStr(const char* str) {
|
|
if (!str) return;
|
|
DWORD NumWritten;
|
|
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), str, strlen(str), &NumWritten, NULL);
|
|
}
|
|
|
|
void c_WinUI_Console_WriteXY(int x, int y, const char* s, WORD attr) {
|
|
if (!s) return;
|
|
|
|
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
COORD c;
|
|
DWORD result;
|
|
|
|
c.X = x;
|
|
c.Y = y;
|
|
|
|
SetConsoleTextAttribute(hOut, attr);
|
|
SetConsoleCursorPosition(hOut, c);
|
|
WriteConsole(hOut, s, strlen(s), &result, NULL);
|
|
}
|
|
|
|
void c_WinUI_Console_GotoXY(int x, int y) {
|
|
COORD c;
|
|
c.X = x;
|
|
c.Y = y;
|
|
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
|
|
}
|
|
|
|
void c_WinUI_Console_BlankLine(int y) {
|
|
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
BlankLine(hOut, y);
|
|
}
|
|
|
|
|