VS2015控制台中获取和修改当前字体大小(2-2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hou09tian/article/details/85336619

2.2 GetConsoleFontSize()函数

GetConsoleFontSize()函数的作用是获取指定控制台输出窗口字体的尺寸。

2.2.1 函数介绍

GetConsoleFontSize()函数的格式为

COORD WINAPI GetConsoleFontSize(

HANDLE hConsoleOutput

,DWORD  nFont

);

其中,hConsoleOutput是控制台输出窗口的句柄;nFont是指定的要获取的字体在系统控制台字体表中的索引,可以通过“2.1 GetCurrentConsoleFont()函数”中提到的GetCurrentConsoleFont()函数获取。

2.2.2 相关代码

通过GetCurrentConsoleFont()函数获取控制台当前字体大小的代码如下所示。

COORD currentFontCoord = GetConsoleFontSize(hOutput, consoleCurrentFont.nFont);

printf("通过GetConsoleFontSize()函数获取控制台当前字体长度是%d, 高度是%d.\n", currentFontCoord.X, currentFontCoord.Y);

其中,hOutput是“2.1.3 相关代码”中通过GetStdHandle()函数获取到的控制台输出窗口句柄。输出的效果如图2所示。

图2 通过GetConsoleFontSize()函数获取到的字体信息

 

3 设置当前字体大小

通过SetCurrentConsoleFont()函数设置当前字体大小。

3.1 函数介绍

SetCurrentConsoleFont()函数的作用是设置当前控制台字体的扩展信息。该函数的格式是

BOOL WINAPI SetCurrentConsoleFontEx(

HANDLE hConsoleOutput

,BOOL bMaximumWindow

,PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx

);

其中,参数hConsoleOutput和bMaximumWindow与GetCurrentConsoleFont()函数参数含义相同;lpConsoleCurrentFontEx是CONSOLE_FONT_INFOEX结构对象的指针。

3.2 CONSOLE_FONT_INFOEX结构

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;

其中,cbSize是结构的大小,以字节为单位,该成员变量必须设置为sizeof(CONSOLE_FONT_INFOEX);nFont是要设置的字体在控制台字体表中的索引;dwFontSize是COORD结构的对象,指定了字体的尺寸;FontFamily指定了字体的间距(pitch)和族(family);FontWeight指定了字体的重量,该值的取值范围是100-1000,正常字体的重量是400,加粗的字体重量是700;FaceName指定了使用何种字体。

3.3 相关代码

使用SetCurrentConsoleFont()函数设置当前字体大小代码如下所示。

CONSOLE_FONT_INFOEX ConsoleCurrentFontEx;

ConsoleCurrentFontEx.cbSize = sizeof(CONSOLE_FONT_INFOEX);

ConsoleCurrentFontEx.nFont = 0;

ConsoleCurrentFontEx.dwFontSize.X = 32;

ConsoleCurrentFontEx.dwFontSize.Y = 64;

ConsoleCurrentFontEx.FontFamily = TMPF_VECTOR;

ConsoleCurrentFontEx.FontWeight = 200;

wcscpy(ConsoleCurrentFontEx.FaceName, _T("Courier"));

SetCurrentConsoleFontEx(hOutput, FALSE, &ConsoleCurrentFontEx);

其中,TMPF_VECTOR表示使用向量字体;hOutput是通过GetStdHandle()函数获取到的控制台输出窗口句柄。输出的效果如图3所示。

图3 通过SetCurrentConsoleFont()函数设置了字体尺寸

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/85336619