Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SetConsoleInfo窗口大小调整不需要';t工作c++;_C++_Winapi_Console - Fatal编程技术网

C++ SetConsoleInfo窗口大小调整不需要';t工作c++;

C++ SetConsoleInfo窗口大小调整不需要';t工作c++;,c++,winapi,console,C++,Winapi,Console,我正在尝试制作一个自动windows CMD函数 这是我的代码: short x = GetSystemMetrics(SM_CXSCREEN); short y = GetSystemMetrics(SM_CYSCREEN); HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SMALL_RECT rect = {0,0, x, y}; SetConsoleWindowInfo(hConsole, TRUE, &rect); 由于某

我正在尝试制作一个自动windows CMD函数 这是我的代码:

short x = GetSystemMetrics(SM_CXSCREEN);
short y = GetSystemMetrics(SM_CYSCREEN);
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SMALL_RECT rect = {0,0, x, y};
SetConsoleWindowInfo(hConsole, TRUE, &rect);

由于某些原因,窗口大小调整不起作用。我检查了GetSystemMetrics,它工作正常。请帮助。

您必须同时设置缓冲区大小和窗口大小。你只是在做后者。您还需要调用
SetConsoleScreenBufferSize
。这个答案向您展示了如何做到这一点:

您必须在roder中使用system(“MODE 650”)使控制台屏幕全屏。

您确实知道,从
GetSystemMetrics
获得的大小是以像素为单位的,而传递给
SetConsoleWindowInfo
的大小是以字符(即行和列)为单位的。哦,很抱歉,如何将像素转换为行和字符,我不知道一个字符或一行有多少像素宽。你能告诉我怎么做吗?
GetConsoleFontSize
将给出字体大小,然后将像素分辨率除以它。对我来说,GetConsoleFont返回的值太高,它将不起作用:/嗯,这是行不通的。你为什么不让用户自己决定,他会知道如何最大化窗口。这种你所有的桌面都属于我的编程是相当有敌意的。