用c语言改变字体大小源代码,热烈庆祝本人受关注人数即将突破8000大关!散分!!+设置终端图标和字体大小C源代码...

#pragma comment(lib,"user32")

#pragma comment(lib,"gdi32")

#pragma comment(lib,"shell32")

#include 

#include 

#include 

#include 

struct CONSOLE_FONT{ DWORD index; COORD dim;};

typedef BOOL  (WINAPI *PROCSETCONSOLEFONT         )(HANDLE, DWORD);

typedef BOOL  (WINAPI *PROCGETCONSOLEFONTINFO     )(HANDLE,BOOL,DWORD,CONSOLE_FONT*);

typedef COORD (WINAPI *PROCGETCONSOLEFONTSIZE     )(HANDLE,DWORD);

typedef DWORD (WINAPI *PROCGETNUMBEROFCONSOLEFONTS)();

typedef BOOL  (WINAPI *PROCGETCURRENTCONSOLEFONT  )(HANDLE,BOOL,CONSOLE_FONT*);

PROCSETCONSOLEFONT          SetConsoleFont;

PROCGETCONSOLEFONTINFO      GetConsoleFontInfo;

PROCGETCONSOLEFONTSIZE      GetConsoleFontSize;

PROCGETNUMBEROFCONSOLEFONTS GetNumberOfConsoleFonts;

PROCGETCURRENTCONSOLEFONT   GetCurrentConsoleFont;

extern "C" HWND WINAPI GetConsoleWindow();

int main(int argc, char *argv[]) {

//然后在程序启动的时候进行载入:

HMODULE hKernel32 = GetModuleHandle("kernel32");

SetConsoleFont          = (PROCSETCONSOLEFONT         )GetProcAddress(hKernel32,"SetConsoleFont"         );

GetConsoleFontInfo      = (PROCGETCONSOLEFONTINFO     )GetProcAddress(hKernel32,"GetConsoleFontInfo"     );

GetConsoleFontSize      = (PROCGETCONSOLEFONTSIZE     )GetProcAddress(hKernel32,"GetConsoleFontSize"     );

GetNumberOfConsoleFonts = (PROCGETNUMBEROFCONSOLEFONTS)GetProcAddress(hKernel32,"GetNumberOfConsoleFonts");

GetCurrentConsoleFont   = (PROCGETCURRENTCONSOLEFONT  )GetProcAddress(hKernel32,"GetCurrentConsoleFont"  );

//载入完毕之后,就可以进行编程对字体大小控制了。

int NumOfFont,i,X=0,Y=0,IconIndex=0;

char *IconFile=NULL;

NumOfFont = GetNumberOfConsoleFonts();

CONSOLE_FONT *fonts = new CONSOLE_FONT[NumOfFont];

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

GetConsoleFontInfo(hConsole, 0, NumOfFont, fonts);

if (argc==1) {

printf("Set Console FontSize and Icon. Designed by zhao4zhong1@163.com 2015-07-10\n");

printf("Usage: %s [XxY] [IconFile] [IconIndex]\n",argv[0]);

printf("May availible Font Size:\n X x  Y\n-- x --\n");

}

if (argc==2) {

if (2!=sscanf(argv[1],"%dx%d",&X,&Y))

IconFile=argv[1];

} else if (argc==3) {

if (2!=sscanf(argv[1],"%dx%d",&X,&Y)) {

IconFile=argv[1];

sscanf(argv[2],"%d",&IconIndex);

} else {

IconFile=argv[2];

}

} else if (argc==4) {

sscanf(argv[1],"%dx%d",&X,&Y);

IconFile=argv[2];

sscanf(argv[3],"%d",&IconIndex);

}

if (IconFile) {

HWND hwnd=GetConsoleWindow();

if (hwnd) {

HICON hIconS=NULL;

if (1<=ExtractIconEx(IconFile,IconIndex,NULL,&hIconS,1)) {

if (hIconS) {

SendMessage(hwnd,WM_SETICON,ICON_SMALL,(LPARAM)hIconS);

//                  DestroyIcon(hIconS);

}

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_FLUSH, NULL, NULL);//更新任务栏上的图标

}

}

}

for (i=0;i

fonts[i].dim = GetConsoleFontSize(hConsole, fonts[i].index);

//      if (argc==1) printf("%2d x %2d %d %d\n",fonts[i].dim.X,fonts[i].dim.Y,i,fonts[i].index);

if (argc==1) printf("%2d x %2d\n",fonts[i].dim.X,fonts[i].dim.Y);

if (fonts[i].dim.X == X && fonts[i].dim.Y == Y) {

SetConsoleFont(hConsole, fonts[i].index);

break;

}

}

delete[] fonts;

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值