【发布时间】:2018-04-11 08:58:44
【问题描述】:
我正在创建rougelike 并确保我的游戏正确显示,我想在运行时更改控制台字体和字体大小。
我对编程和 c# 非常陌生,所以我希望可以用我或其他任何人都可以轻松实现的方式来解释这一点。
resource 列出了 CONSOLE_FONT_INFOEX 结构的完整语法:
typedef struct _CONSOLE_FONT_INFOEX {
ULONG cbSize;
DWORD nFont;
COORD dwFontSize;
UINT FontFamily;
UINT FontWeight;
WCHAR FaceName[LF_FACESIZE];
} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
具体来说,我想在运行时将控制台字体更改为 NSimSum 并将字体大小更改为 32。
编辑 1:我能否解释一下如何使用来自 this 帖子的 SetCurrentConsoleFontEx function。我不明白该函数需要处于什么上下文中。我尝试了Console.SetCurrentConsoleFontEx,但 vs 没有给我任何选项。
编辑 2:this 论坛帖子似乎详细介绍了一种更改字体大小的简单方法,但它是特定于 c++ 的吗?
void setFontSize(int FontSize)
{
CONSOLE_FONT_INFOEX info = {0};
info.cbSize = sizeof(info);
info.dwFontSize.Y = FontSize; // leave X as zero
info.FontWeight = FW_NORMAL;
wcscpy(info.FaceName, L"Lucida Console");
SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, &info);
}
【问题讨论】:
-
在Changing font in a Console window in .NET 中没有解释如何实现我在字体类型上苦苦挣扎的代码。帖子中没有回答字体大小。
-
我认为我的帖子应该被删除,因为它不清楚并且缺少我找到的新信息。相关答案是来自 msdn 的复制和粘贴,并附有“您尝试过吗”的说明,而另一个答案仅适用于 winfroms。我打算发一个新帖子,感谢发帖者试图帮助我解决我模糊的帖子。
标签: c# fonts runtime console-application font-size