我想更改控制台字体大小,这是我写的代码+我试图找到错误。
#include<iostream>
#include<windows.h>
#include<conio.h>
int main()
{
HANDLE Hout=GetStdHandle(STD_OUTPUT_HANDLE);
COORD fsize={8,8};
CONSOLE_FONT_INFOEX Font;
GetCurrentConsoleFontEx(Hout,0,&Font);
//My Code to check the problem...............................
std::cout<<Font.dwFontSize.X<<' '<<Font.dwFontSize.Y;getch();
//...........................................................
Font.dwFontSize=fsize;
SetCurrentConsoleFontEx(Hout,0,&Font);
std::cout<<"!Test Text!";
getch();
return 0;
}
错误是文本未更改为所需大小,当我尝试通过编写检查代码来检查问题时,输出为,
0 0
我什么都听不懂,也许我错过了什么
我需要帮助b'cuz我自己做了所有关于HANDLES和windows-functions的主题,并且没有互联网帮助。
答案 0 :(得分:2)
Windows API中的大多数结构都包含一个size成员作为其第一个成员(例如OPENFILENAME)。该成员必须由应用程序初始化。 CONSOLE_FONT_INFOEX structure也不例外。
要检索当前所选字体的CONSOLE_FONT_INFOEX
结构,请使用以下代码:
HANDLE Hout = ::GetStdHandle( STD_OUTPUT_HANDLE );
CONSOLE_FONT_INFOEX Font = { sizeof( Font ) };
::GetCurrentConsoleFontEx( Hout, FALSE, &Font );
此零初始化CONSOLE_FONT_INFOEX
结构并将第一个成员设置为sizeof( Font )
。必须检查返回值。如果您这样做,对GetCurrentConsoleFontEx
的调用将返回0
,GetLastError
报告的值为87(ERROR_INVALID_PARAMETER:参数不正确。)。