2

我用 C++ 开发了一个只能在 Windows 上运行的控制台应用程序。我想在程序运行时更改命令提示符的文本大小。我进行了一些搜索,但找不到任何可以解决问题的方法。每个人都在谈论改变颜色。

无论如何,如果这是可能的,我该如何更改命令提示符的文本大小。

谢谢!

4

2 回答 2

4

在获取当前字体信息之前,您必须使用 sizeof(CONSOLE_FONT_INFOEX) 初始化 CONSOLE_FONT_INFOEX 结构。
此外,您必须仅使用可用尺寸:

  • 4×6
  • 16×8
  • 6×9
  • 8×9
  • 5×12
  • 7×12
  • 8×12
  • 16×12
  • 12×16
  • 10×18
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);
}
于 2014-09-21T15:23:28.593 回答
-1

您可以使用CONSOLE_FONT_INFOEXstruct 指定命令提示符写入的文本/格式的参数。

欲了解更多信息,请单击此处

从上面的链接中提取。

这是一个完整的例子。我不能说它是否有效,因为显然 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;
}
于 2013-08-07T21:51:48.267 回答