Главная страница
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.016 c
3-40276
Vlad2
2003-09-22 19:06
2003.10.13
Редакция в Paradox e. Проблема быстродействия.


3-40287
MakNik
2003-09-22 12:53
2003.10.13
ADO+MSSQL


4-40715
memphis
2003-08-11 13:20
2003.10.13
Защищенный режим и служба


1-40371
dataMaster
2003-10-03 10:19
2003.10.13
Как в ListView показать нужный Item первым


14-40651
Dimich1978
2003-09-22 16:02
2003.10.13
Меняем пароль локального Админа-ЛЕГКО