B
Ausgabe nur kurz anzeigen:
#include <windows.h>
void ClearScreen(void)
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD target = {0, 0};
DWORD written;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ' ',
csbi.dwSize.X * csbi.dwSize.Y,
target, &written);
FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7,
csbi.dwSize.X * csbi.dwSize.Y,
target, &written);
}
void SetWindowExt(int x, int y, int yMulti = 1)
{
SMALL_RECT sr_window = {0, 0, x - 1, y - 1};
COORD extension;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
extension.X = max(x, csbi.dwMaximumWindowSize.X);
extension.Y = max(y, csbi.dwMaximumWindowSize.Y);
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), extension);
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &sr_window);
extension.X = x;
extension.Y = y * yMulti;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), extension);
}
void DruckSimpleText(int x, int y, char const *text)
{
COORD target = {x, y};
DWORD written;
WriteConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), text,
strlen(text),
target, &written);
}
void SetCursorVisible(BOOL v)
{
CONSOLE_CURSOR_INFO ci;
GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &ci);
ci.bVisible = v;
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &ci);
}
int main()
{
SetWindowExt(30, 30);
ClearScreen();
SetCursorVisible(false);
for(int i = 0; i < 10; ++i)
{
DruckSimpleText(i, i, "kurz Hallo");
Sleep(1000);
DruckSimpleText(i, i, " ");
}
SetCursorVisible(true);
}