首页 > 解决方案 > 我找到了这段代码来更改字体,但它不起作用

问题描述

我刚刚找到更改控制台字体和大小的答案。但它没有用:字体保持不变Consolas或更改为Courier new. 我想用Lucida Sans Typewriter.

CONSOLE_FONT_INFOEX cfi{};
    cfi.cbSize = sizeof(cfi);
    cfi.nFont = 0;
    cfi.dwFontSize.X = 0;                   // Width of each character in the font
    cfi.dwFontSize.Y = 19;                  // Height
    cfi.FontFamily = FF_DONTCARE;
    cfi.FontWeight = FW_NORMAL;
    std::wcscpy(cfi.FaceName, L"Lucida Sans Typewriter"); // Choose your font
    SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi);

标签: c++winapifonts

解决方案


这是一个尚未修复的错误。如果字体名称包含超过 16 个字符,则不会通过 API 设置(但它可以在控制台中使用)。无论是否设置了指定的字体,对 SetCurrentConsoleFontEx() 的调用都会返回成功。

在此处阅读更多信息: https ://github.com/microsoft/terminal/issues/258


推荐阅读