【发布时间】:2016-07-13 05:23:00
【问题描述】:
您好,我正在尝试使用WriteConsoleOutputA 进行输出。
我有这个代码:
CHAR_INFO letterA;
letterA.Char.AsciiChar = 'A';
letterA.Attributes =
FOREGROUND_RED | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_INTENSITY;
//Set up the positions:
COORD charBufSize = { 1, 1};
COORD characterPos = { 0, 0 };
SMALL_RECT writeArea = { 0,0,0,0 };
//Write the character
WriteConsoleOutputA(wHnd, &letterA, charBufSize, characterPos, &writeArea);
所以此时它会写一个带有黄色背景的红色A,但是例如,如果我希望A 出现在坐标(5,5)中,即使我更改@,它也不会打印它987654325@转{0, 0, 10, 10}。
或者如果我想在第一个右侧写另一个A:
WriteConsoleOutputA(wHnd, &letterA, charBufSize, characterPos, &writeArea);
WriteConsoleOutputA(wHnd, &letterA, charBufSize, { 0, 1 }, &writeArea);
我从这个图形控制台模式开始,如果有人能告诉我如何在我想要的坐标中打印那个字符,那将非常有帮助。
我试图改变它,改变坐标是这样的:
COORD charBufSize = { 5, 10};
COORD characterPos = { 3, 2 };
SMALL_RECT writeArea = { 0,0,5,10 };
但它会在 5*10 的所有缓冲区中打印奇怪的字符和其他颜色。
谢谢
塞萨尔。
【问题讨论】: