Это, действительно, плохая затея. Размер шрифта меняет размер консоли.
#include <windows.h>
#include <iostream>
#include <windows.h>
#include <tchar.h>
using namespace std;
BOOL WINAPI SetConsoleFont(HANDLE hOutput, DWORD fontIndex);
DWORD WINAPI GetNumberOfConsoleFonts();
BOOL WINAPI GetConsoleFontInfo(HANDLE hOutput, BOOL bMaximize, DWORD numFonts, CONSOLE_FONT_INFO * info);
int main() {
HANDLE hCons = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD fontNum = GetNumberOfConsoleFonts();
CONSOLE_FONT_INFO * fonts = (CONSOLE_FONT_INFO *)malloc(sizeof(CONSOLE_FONT_INFO) * fontNum);
GetConsoleFontInfo(hCons, FALSE, fontNum, (CONSOLE_FONT_INFO *)fonts);
locale::global(locale(""));
for (unsigned index = 0; index < fontNum; index++) {
fonts[index].dwFontSize = GetConsoleFontSize(hCons, fonts[index].nFont);
printf("Режим: %d\n", index + 1);
SetConsoleFont(hCons, fonts[index].nFont);
Sleep(3000);
}
free(fonts);
cin.get();
return 0;
}
BOOL WINAPI SetConsoleFont(HANDLE hOutput, DWORD fontIndex) {
typedef BOOL (WINAPI * PSetConsoleFont)(HANDLE, DWORD);
static PSetConsoleFont pSetConsoleFont = NULL;
if(pSetConsoleFont == NULL) pSetConsoleFont = (PSetConsoleFont)::GetProcAddress(::GetModuleHandle(_T("kernel32")), "SetConsoleFont");
if(pSetConsoleFont == NULL) return FALSE;
return pSetConsoleFont(hOutput, fontIndex);
}
DWORD WINAPI GetNumberOfConsoleFonts() {
typedef DWORD (WINAPI * PGetNumberOfConsoleFonts)();
static PGetNumberOfConsoleFonts pGetNumberOfConsoleFonts = NULL;
if(pGetNumberOfConsoleFonts == NULL) pGetNumberOfConsoleFonts = (PGetNumberOfConsoleFonts)::GetProcAddress(::GetModuleHandle(_T("kernel32")), "GetNumberOfConsoleFonts");
if(pGetNumberOfConsoleFonts == NULL) return 0;
return pGetNumberOfConsoleFonts();
}
BOOL WINAPI GetConsoleFontInfo(HANDLE hOutput, BOOL bMaximize, DWORD fontIndex, CONSOLE_FONT_INFO * info) {
typedef BOOL (WINAPI * PGetConsoleFontInfo)(HANDLE, BOOL, DWORD, CONSOLE_FONT_INFO *);
static PGetConsoleFontInfo pGetConsoleFontInfo = NULL;
if(pGetConsoleFontInfo == NULL) pGetConsoleFontInfo = (PGetConsoleFontInfo)::GetProcAddress(::GetModuleHandle(_T("kernel32")), "GetConsoleFontInfo");
if(pGetConsoleFontInfo == NULL) return FALSE;
return pGetConsoleFontInfo(hOutput, bMaximize, fontIndex, info);
}
Другие языки программирования и технологии
Размер шрифта в консоли С++. Как сделать меньше размер шрифта в консоли консольного прилоэжения С++??
Если бы в консоли можно было нормально рисовать и менять шрифты, то не были бы нужны окошки.. . Это в системных настройках надо менять.
BOOL WINAPI SetCurrentConsoleFontEx(
__in HANDLE hConsoleOutput,
__in BOOL bMaximumWindow,
__in PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
);
__in HANDLE hConsoleOutput,
__in BOOL bMaximumWindow,
__in PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
);
Простите, что? Консоль не место для свистелок и рюшечек, нет там такого.
Похожие вопросы
- C++ проблемма русификации консоли. не могу сделать чтобы консоль была русской
- Как можно векторное лого перевести в маленького размера растр при этом не сильно терять в качестве?
- как упорядочить шрифты в фотошопе? а то очень проблемотично подбирать шрифт русский
- Как сделать файл размером 10 гБ из ничего?
- Дана действительная матрица размера 6x9. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.
- как узнать размер картинки в мм в Photoshop. Photoshop показывает размер в пикселях, а мне нужно знать мм?
- Как на c++ реализовать прием строки произвольного размера из консоли?
- Как редактировать шрифт в Фотошоп? Нужно удалить старый текст и написать новый текст тем же шрифтом и размером
- "Поехали" шрифты. Кто знает, в чем причина? (объяснение внутри)
- Как в вордпресс изменить цвет шрифта в комментариях. ? У меня белый на белом фоне, как сделать чёрный, где эта настройка?