我有一段简单的演示代码,在控制台中绘制一个黄色像素到坐标(100,100)。我想知道,我可以修改屏幕的尺寸,以便我可以有变量,如:int WIDTH = 1000; int HEIGHT = 1000
并使控制台符合这些尺寸?
#include<windows.h>
#include<stdio.h>
int main(void) {
//Get a console handle
HWND console = GetConsoleWindow();
//Get a handle to device context
HDC dc = GetDC(console);
//Choose any color
COLORREF COLOR= RGB(255,255,255);
SetPixel(dc,100,100,COLOR);
ReleaseDC(console, dc);
}
1条答案
按热度按时间tv6aics11#
正如@WeatherVane指出和Scrolling the Screen Buffer解释的那样:
控制台窗口显示活动屏幕缓冲区的一部分。
图片来自https://learn.microsoft.com/en-us/windows/console/images/cscon-01.png。
您的像素坐标应该在控制台屏幕缓冲区中,可以通过SetConsoleScreenBufferInfoEx进行修改,然后使用SetConsoleWindowInfo设置控制台屏幕缓冲区窗口的当前大小和位置。
使用Scrolling a Screen Buffer's Window进行了测试,但略有变更。