Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.13;
Скачать: CL | DM;

Вниз

Изменение размера шрифта у консольного приложения   Найти похожие ветки 

 
diMAN ©   (2003-08-06 19:25) [0]

Моё приложение создаёт консольное окно. Возникла проблема в изменении размера созданного окна, размера буфера экрана и в изменении размера шрифта, которым выводится информация в консольном окне. Подобно тому, как это задается при создании ярлыка или в run-time через пункт системного меню "свойства" консольного окна. Облазил весь инет и msdn, но никаких зацепок не нашёл. Буду признателен любой помощи.

P.S. В kernel.dll в числе экспортируемых функций нашёл SetConsoleFont и SetConsoleDisplayMode, узнать бы какие параметры им нужны.


 
Anatoly Podgoretsky ©   (2003-08-06 20:09) [1]

Те окна про которые ты говоришь к консоли отношения не имеют, туда просто переназначается стандартный вывод, а обычный консольный вывод делается в текствое окно (Alt+Enter)


 
diMAN ©   (2003-08-07 13:17) [2]

1) Возможно я не совсем корректно выразился, но я имел в виду консольное окно, например окно command.com, запущенное в оконном режиме, а не в полноэкранном режиме.
2) В своей программе я делаю так:
AllocConsole;
ConsoleWindow := GetConsoleWindow();
SetWindowText(ConsoleWindow, "Мой Клиент");
ConsoleHandle ( STD_OUTPUT_HANDLE)
1) Возможно я не совсем корректно выразился, но я имел в виду консольное окно, например окно command.com, запущенное в оконном режиме, а не в полноэкранном режиме.
2) В своей программе я делаю так:
AllocConsole;
ConsoleWindow := GetConsoleWindow();
SetWindowText(ConsoleWindow, "Мой Клиент");
ConsoleHandle := GetStdHandle(STD_OUTPUT_HANDLE);
GetCurrentConsoleFont(ConsoleHandle, False, ConsoleFontInfo);
ConsoleFontSize := GetConsoleFontSize(ConsoleHandle, ConsoleFontInfo.nFont); // Получаем размер шрифта 8x12

// Вот, подобрал эмпирическим путём:
SetConsoleFont(ConsoleHandle, 9);
ConsoleFontSize := GetCurrentConsoleFont(ConsoleHandle, False, ConsoleFontInfo); // Получаем размер шрифта 10x18 - то, что мне и нужно


Описание финкции (нигде нет, даже в MSDN Windows XP ещё не включили, хотя доступна ещё с windows 95):
function SetConsoleFont(
hConsoleOutput: THandle; // Дескриптор вывода
nFont: DWORD // Шрифт, который надо установить
): Boolean; stdcall; external "kernel32.dll";

А функция SetConsoleDisplayMode отвечает за переключение консольного окна в оконный / полноэкранный режим.

Таким образом остается открытым вопрос об изменении размера консольного окна и размера его буфера экрана и появился вопрос по поводу недокументированной функции GetConsoleFontInfo. Может кто знает?


 
diMAN ©   (2003-08-07 18:49) [3]

Вопрос снят. За изменение размера окна экранного буфера консольного приложения отвечает функция SetConsoleWindowInfo, а за изменение размера самого экранного буфера - SetConsoleScreenBufferSize.



Страницы: 1 вся ветка

Текущий архив: 2003.10.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
11-40332
Medvedev_m
2002-12-21 16:42
2003.10.13
KOL - без ДЕЛФИ!!!


7-40684
Khloo!
2003-07-30 16:40
2003.10.13
TreeView


7-40692
Duncan
2003-07-28 15:08
2003.10.13
CreateProcess


3-40233
eds
2003-09-24 09:37
2003.10.13
При вставке текстовых данных в таблицу Firebird генерирует ошибку


14-40648
N169
2003-09-23 12:38
2003.10.13
Больной HDD и сбойные кластеры