Как узнать размер шрифта в консоли?
Запись от fair7 размещена 08.03.2020 в 20:35
Показов 3518
Комментарии 7
|
Не найдя функции, которая узнаёт размер шрифта консоли - решил написать программку, которая вычислит шрифт (какой в данный момент): От ХР до 8.1 работает; а в windows 10 не работает
| |||||
Размещено в маленькие программы/алгоритмы
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 7
Комментарии
-
Запись от Croessmah размещена 08.03.2020 в 22:14
-
Запись от fair7 размещена 08.03.2020 в 22:22
-
емнип, они доступны, начиная с Windows XP.
C++ 1
#define _WIN32_WINNT 0x05000x500- это Windows 2000.
Таблица значений: https://docs.microsoft.com/ru-... ew=vs-2019Запись от Croessmah размещена 08.03.2020 в 22:53
-
Запись от fair7 размещена 09.03.2020 в 14:59
-
Для VS:
Сообщение от fair7
Возможно, у вас на MinGW заголовок не полный. Можно сделать так:C++ 1 2 3 4 5 6 7 8 9 10 11
#include <Windows.h> #include <iostream> int main() { CONSOLE_FONT_INFO fontInfo; if (!GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, &fontInfo)) { return EXIT_FAILURE; } std::cout << "character geometry: " << fontInfo.dwFontSize.X << "x" << fontInfo.dwFontSize.Y; }
C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#include <Windows.h> #include <iostream> #ifdef __cplusplus extern "C" { #endif //__attribute((dllimport, stdcall)) BOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFO lpConsoleCurrentFont); #ifdef __cplusplus } #endif int main() { CONSOLE_FONT_INFO fontInfo; if (!GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, &fontInfo)) { return EXIT_FAILURE; } std::cout << "character geometry: " << fontInfo.dwFontSize.X << "x" << fontInfo.dwFontSize.Y; }
Запись от Croessmah размещена 09.03.2020 в 21:22
-
эта программа показывает размер буфера в символах, а как размер символа показать?
ещёC++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include <Windows.h> #include <stdio.h> #define PP printf #ifdef __cplusplus extern "C" { #endif //__attribute((dllimport, stdcall)) BOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFO lpConsoleCurrentFont); #ifdef __cplusplus } #endif int main() { CONSOLE_FONT_INFO fontInfo; GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, &fontInfo); PP("character geometry: %i",fontInfo.dwFontSize.X),PP("x %i\n",fontInfo.dwFontSize.Y); GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), true, &fontInfo); PP("character geometry: %i",fontInfo.dwFontSize.X),PP("x %i\n",fontInfo.dwFontSize.Y); system("pause"); }
C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#include <stdio.h> #include <windows.h> #define PP printf CONSOLE_SCREEN_BUFFER_INFO csbiData; int main() { DWORD dwWidht, dwHeightWnd, dwHeightBuf, dwErrCode; CHAR* szSysMsg = NULL; //LPTSTR lpszSysMsg = NULL; BOOL bRet; HANDLE hWndCon = GetStdHandle(STD_OUTPUT_HANDLE); if (FALSE != hWndCon)GetConsoleScreenBufferInfo(hWndCon, &csbiData); dwWidht = csbiData.dwSize.X; // Ширина буфера / окна dwHeightBuf = csbiData.dwSize.Y; // Высота буфера dwHeightWnd = csbiData.srWindow.Bottom + 1; // Высота окна PP(" Size: %i",dwHeightWnd),PP(" (%i",dwHeightBuf),PP(") x %i",dwWidht),PP(" symbols\n"); system("pause"); return EXIT_SUCCESS; }
Запись от fair7 размещена 10.03.2020 в 21:50
-
Запись от fair7 размещена 10.03.2020 в 22:27



