更改命令提示符文本大小C ++

时间:2013-08-07 21:47:19

标签: c++ winapi command-prompt

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

无论如何,如果可以,我怎样才能更改命令提示符的文本大小。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

        
  • 4 x 6
  •     
  • 16 x 8
  •     
  • 6 x 9
  •     
  • 8 x 9
  •     
  • 5 x 12
  •     
  • 7 x 12
  •     
  • 8 x 12
  •     
  • 16 x 12
  •     
  • 12 x 16
  •     
  • 10 x 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);
}

答案 1 :(得分:-1)

您可以使用CONSOLE_FONT_INFOEX结构来指定命令提示写入的文本/格式参数。

有关详情,请点击here

从上面的链接中提取。

  

这里有一个完整的例子。我无法说它是否有效,因为显然函数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;
}