我用 C++ 开发了一个只能在 Windows 上运行的控制台应用程序。我想在程序运行时更改命令提示符的文本大小。我进行了一些搜索,但找不到任何可以解决问题的方法。每个人都在谈论改变颜色。
无论如何,如果这是可能的,我该如何更改命令提示符的文本大小。
谢谢!
我用 C++ 开发了一个只能在 Windows 上运行的控制台应用程序。我想在程序运行时更改命令提示符的文本大小。我进行了一些搜索,但找不到任何可以解决问题的方法。每个人都在谈论改变颜色。
无论如何,如果这是可能的,我该如何更改命令提示符的文本大小。
谢谢!
在获取当前字体信息之前,您必须使用 sizeof(CONSOLE_FONT_INFOEX) 初始化 CONSOLE_FONT_INFOEX 结构。
此外,您必须仅使用可用尺寸:
BOOL SetConsoleFontSize(COORD dwFontSize){
HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_FONT_INFOEX info{sizeof(CONSOLE_FONT_INFOEX)};
if (!GetCurrentConsoleFontEx(output, false, &info))
return false;
info.dwFontSize = dwFontSize;
return SetCurrentConsoleFontEx(output, false, &info);
}
您可以使用CONSOLE_FONT_INFOEX
struct 指定命令提示符写入的文本/格式的参数。
欲了解更多信息,请单击此处。
从上面的链接中提取。
这是一个完整的例子。我不能说它是否有效,因为显然 Get/SetCurrentConsoleFontEx 函数仅在 windows vista 及更高版本中可用。
#include <iostream>
#include <windows.h>
int main(){
HANDLE outcon = GetStdHandle(STD_OUTPUT_HANDLE);//you don't have to call this function every time
CONSOLE_FONT_INFOEX font;//CONSOLE_FONT_INFOEX is defined in some windows header
GetCurrentConsoleFontEx(outcon, false, &font);//PCONSOLE_FONT_INFOEX is the same as CONSOLE_FONT_INFOEX*
font.dwFontSize.X = 7;
font.dwFontSize.Y = 12;
SetCurrentConsoleFontEx(outcon, false, &font);
SetConsoleTextAttribute(outcon, 0x0C);
std::cout << "I'm red";
std::cin.get();
return 0;
}