为什么控制台列不等于屏幕宽度除以字体大小(以像素为单位)? 我在编程和英语方面都是新手,所以可能会很愚蠢。首先我对此感到抱歉。 代码如下:
#include<windows.h>
#include<iostream>
int main()
{
HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_FONT_INFOEX fontInfo;
fontInfo.cbSize = sizeof(CONSOLE_FONT_INFOEX);
GetCurrentConsoleFontEx(consoleHandle, FALSE, &fontInfo);
fontInfo.dwFontSize.X = (SHORT)0;
fontInfo.dwFontSize.Y = (SHORT)10;
fontInfo.FontWeight = FW_NORMAL;
wcscpy(fontInfo.FaceName, L"Consolas");
SetCurrentConsoleFontEx(consoleHandle, FALSE, &fontInfo);
std::cout << GetLargestConsoleWindowSize(consoleHandle).X << std::endl;
while(1)
{
char a = std::cin.get();
};
return 0;
}
谢谢!
我的屏幕尺寸是1920x1080,所以结果是320。我想结果应该是1920/10=192。
我希望能够调整控制台的大小并在任何我想要的地方更改其位置,这是我遇到的问题之一。我还想了解为什么 SetConsoleWindowInfo 函数不起作用,但我相信我应该将其作为一个单独的问题来问。
我添加一些代码:
WINBOOL Flag = SetCurrentConsoleFontEx(consoleHandle, FALSE, &fontInfo);
std::cout << Flag << std::endl;
std::cout << "Largest:" << GetLargestConsoleWindowSize(consoleHandle).X << std::endl;
std::cout << "real font size:"<<(GetSystemMetrics(SM_CXSCREEN)/GetLargestConsoleWindowSize(consoleHandle).X)<< std::endl;