控制台控制
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
#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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user