Главная страница
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.015 c
14-40659
Dmitriy O.
2003-09-23 12:52
2003.10.13
Вопрос о физическом виде хранения данных


1-40467
афвуд
2003-10-01 19:46
2003.10.13
Как заставить компонент в рантайме вести себя также как и


8-40519
Ламер
2003-06-12 15:53
2003.10.13
Сохранение рисунка


6-40565
gedd
2003-08-14 10:14
2003.10.13
Многопоточный загрузчик через на функциях WinInet


3-40289
ViJen
2003-09-22 14:36
2003.10.13
DBF