В Windows SetCurrentConsoleFontEx меняет размер шрифта консоли?

Другие ребята рекомендуют Функция SetCurrentConsoleFontEx но я не знаю, как применить это к моему проекту.

Я хочу изменить размер шрифта только некоторых текстов, а не всех текстов.

Есть ли SetCurrentConsoleFontEx() изменить размер шрифта консоли?

Или есть другие способы изменить это?

Если есть, пожалуйста, покажите мне функцию консоли и простой пример.

0

Решение

Вот пример использования SetCurrentConsoleFontEx для изменения размера шрифта консоли. Это влияет на все окно консоли — так, как уже сказал Йоахим Пилеборг, если вы хотите смешанный размер шрифта в одном окне консоли, это вам не поможет.

#define _WIN32_WINNT 0x500
#include <Windows.h>

// PrintChars sends ASCII characters to console output
// for demonstration purposes.
// depends only on Win32 API
static void PrintChars() {
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD num_written;
static const char* cr_lf = "\r\n";
for(char c=' '; c<'\x7f'; ++c) {
WriteFile(hStdout, &c, 1, &num_written, NULL);
if(c % 16 == 15) WriteFile(hStdout, cr_lf, 2, &num_written, NULL);
}
WriteFile(hStdout, cr_lf, 2, &num_written, NULL);
}

// WaitEnter blocks execution until the user
// presses the enter key.
// depends only on Win32 API
static void WaitEnter() {
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
char buffer;
DWORD num_read;
do {
num_read = 0;
ReadFile(hStdin, &buffer, 1, &num_read, NULL);
} while(num_read && buffer != '\n');
}

int main() {
// Display some example characters
PrintChars();

// Wait for the user to see how the current font looks
WaitEnter();

// Get a handle to the current console screen buffer
HANDLE hcsb = CreateFileA("CONOUT$", GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

CONSOLE_FONT_INFOEX cfi = {sizeof(cfi)};

// Populate cfi with the screen buffer's current font info
GetCurrentConsoleFontEx(hcsb, FALSE, &cfi);

// Modify the font size in cfi
cfi.dwFontSize.X *= 2;
cfi.dwFontSize.Y *= 2;

// Use cfi to set the screen buffer's new font
SetCurrentConsoleFontEx(hcsb, FALSE, &cfi);

// Wait for the user to see the difference before exiting
WaitEnter();
CloseHandle(hcsb);
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]