Add a test program that uses the ioctl-like console interface to scroll
and write.
This commit is contained in:
parent
8647405a6d
commit
662b140c62
40
Misc/Win32Write1.cc
Normal file
40
Misc/Win32Write1.cc
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* A Win32 program that scrolls and writes to the console using the ioctl-like
|
||||
* interface.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
HANDLE conout = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
|
||||
for (int i = 0; i < 80; ++i) {
|
||||
|
||||
CONSOLE_SCREEN_BUFFER_INFO info;
|
||||
GetConsoleScreenBufferInfo(conout, &info);
|
||||
|
||||
SMALL_RECT src = { 0, 1, info.dwSize.X - 1, info.dwSize.Y - 1 };
|
||||
COORD destOrigin = { 0, 0 };
|
||||
CHAR_INFO fillCharInfo = { 0 };
|
||||
fillCharInfo.Char.AsciiChar = ' ';
|
||||
fillCharInfo.Attributes = 7;
|
||||
ScrollConsoleScreenBuffer(conout, &src, NULL, destOrigin, &fillCharInfo);
|
||||
|
||||
CHAR_INFO buffer = { 0 };
|
||||
buffer.Char.AsciiChar = 'X';
|
||||
buffer.Attributes = 7;
|
||||
COORD bufferSize = { 1, 1 };
|
||||
COORD bufferCoord = { 0, 0 };
|
||||
SMALL_RECT writeRegion = { 0, 0, 0, 0 };
|
||||
writeRegion.Left = writeRegion.Right = i;
|
||||
writeRegion.Top = writeRegion.Bottom = 5;
|
||||
WriteConsoleOutput(conout,
|
||||
&buffer, bufferSize, bufferCoord,
|
||||
&writeRegion);
|
||||
|
||||
Sleep(250);
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
#!/bin/bash
|
||||
g++ Win32Echo1.cc -o Win32Echo1
|
||||
g++ Win32Echo2.cc -o Win32Echo2
|
||||
g++ Win32Write1.cc -o Win32Write1
|
||||
|
Loading…
Reference in New Issue
Block a user