如何使用Windows API调整控制台窗口的大小?

5jdjgkvh  于 2023-03-09  发布在  Windows
关注(0)|答案(1)|浏览(311)

我有一段简单的演示代码,在控制台中绘制一个黄色像素到坐标(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);
}
tv6aics1

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进行了测试,但略有变更。

相关问题