Главная страница
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.025 c
1-40432
k_len
2003-10-02 07:43
2003.10.13
HTML


4-40749
booblik
2003-08-10 22:13
2003.10.13
эмуляция клавы


1-40348
Vovan
2003-10-01 21:33
2003.10.13
Перевод Delphi - C++


1-40356
Eagle Owl
2003-09-30 23:40
2003.10.13
Delphi 7


14-40617
Дмитрий
2003-09-24 14:35
2003.10.13
Винт-чудесник.