On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
администратор




Пост N: 2763
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.03.13 00:04. Заголовок: Full screen mode


Windows XP и ниже поддерживает такой режим.
Начиная с VISTA такого режима нет для консольных приложений.

Как выставить в приложении режим развернуть окно на весь экран
в зависимости от версии OS Windows ?

Что то типа такого нужно
 
if isfullscreemode()
// все как обычно как в Clipper
else
// развернем окошко поширше и на весь экран
endif




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 37 , стр: 1 2 All [только новые]


постоянный участник




Пост N: 2742
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.03.13 02:39. Заголовок: Dima пишет: Как выс..


Dima пишет:

 цитата:
Как выставить в приложении режим развернуть окно на весь экран
в зависимости от версии OS Windows



IF OS_ISWINVISTA_OR_LATER()
// развернем окошко поширше и на весь экран
ELSE
// все остальное....
END

Какой терминал и Харбор используешь ?
Если хочешь: "// развернем окошко поширше и на весь экран " то надо GTVWG -терминал использовать.
Для хХарбора выкладывал уже, для Харбора еще "допиливать" нужно, там пара функций не работает...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2765
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.03.13 10:22. Заголовок: Andrey пишет: Какой..


Andrey пишет:

 цитата:
Какой терминал и Харбор используешь ?


GTWIN
Ведь я же могу ручками зайти в свойства окна и подобрать нужный
шрифт для окна что бы оно было на весь экран или почти.
А как это программно задать ?

Andrey пишет:

 цитата:
то надо GTVWG -терминал использовать


Там ясно как сделать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2745
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.03.13 12:41. Заголовок: Dima пишет: А как э..


Dima пишет:

 цитата:
А как это программно задать ?


Не знаю...
Я из-за этого ушел на GTVWG -терминал.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2860
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.03.13 13:10. Заголовок: Andrey пишет: Не зн..


Andrey пишет:

 цитата:
Не знаю...


Способ есть. Вопрос кто возьмется перевести это под Harbour
Вот сырец http://forum.oszone.net/thread-129824-6.html

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2785
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.03.13 14:55. Заголовок: Dima пишет: Вопрос ..


Dima пишет:

 цитата:
Вопрос кто возьмется перевести это под Harbour



Пишут, что SetConsoleFont - это недокументированная функция. Т.е., она будет работать не на всех ОС, и не для всех размеров шрифта.
Перевести то под харбор ее несложно. Я перевел (см.ниже). Но она у меня не работает (xp sp3). Почему - не знаю.

#pragma BEGINDUMP 

#include "hbapi.h"
#include "windows.h"

typedef BOOL (WINAPI *SETCONSOLEFONT)(HANDLE, DWORD);
SETCONSOLEFONT SetConsoleFont;

HB_FUNC( WIN_SETCONSOLEFONT )
{
HMODULE hmod = GetModuleHandleA("KERNEL32.DLL");
SetConsoleFont = ( SETCONSOLEFONT ) GetProcAddress(hmod, "SetConsoleFont");
if ( SetConsoleFont )
SetConsoleFont( GetStdHandle(STD_OUTPUT_HANDLE), hb_parni( 1 ) );
}
#pragma ENDDUMP


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2861
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.03.13 15:05. Заголовок: Pasha а параметры к..


Pasha
а параметры какие ?

Похоже число (поигрался) и вплоть до 10 размер окна меняется. Но все равно что то не то.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2786
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.03.13 15:11. Заголовок: Dima пишет: а парам..


Dima пишет:

 цитата:
а параметры какие ?



Размер шрифта

win_SetConsoleFont( <nFontSize> )

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2862
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.03.13 15:15. Заголовок: А сам шрифт можно ук..


А сам шрифт можно указать ?


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2787
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.03.13 15:27. Заголовок: В этой функции - нет..


В этой функции - нет. Да и для консоли windows доступен только шрифт Lucida Console, других вариантов нет.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2863
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.03.13 15:32. Заголовок: Pasha Спасибо..


Pasha
Спасибо

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2867
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.03.13 19:14. Заголовок: Pasha пишет: Но она..


Pasha пишет:

 цитата:
Но она у меня не работает (xp sp3)


Поигрался , работает.
WIN_SETCONSOLEFONT(16) установит 24 размер
WIN_SETCONSOLEFONT(17) установит 24 размер BOLD
WIN_SETCONSOLEFONT(18) установит 28 размер

С параметром меньше 11 ставятся точечные шрифты

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 289
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 24.03.13 08:12. Заголовок: Dima пишет: В этой ..


Pasha пишет:

 цитата:
В этой функции - нет. Да и для консоли windows доступен только шрифт Lucida Console, других вариантов нет.


Почему: Courier New & Terminal так же ставятся

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2789
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.03.13 09:34. Заголовок: AndreyZh пишет: Поч..


AndreyZh пишет:

 цитата:
Почему: Courier New & Terminal так же ставятся



Значит, на разных версиях windows по разному. У меня вот есть только Lucida Console

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2868
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 10:21. Заголовок: Pasha А как получит..


Pasha
А как получить дескриптор текущего консольного окна ?
Пробовал так но что то не получается
#include "hbapi.h"
#include "Windows.h"

HB_FUNC( GETCONSOLEWINDOW )
{
hb_retnl( GetConsoleWindow( hb_parc( 1 ) ) ) ;
}

PS
Читал о ней тут http://www.vsokovikov.narod.ru/New_MSDN_API/Console/fn_getconsolewindow.htm

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2790
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.03.13 10:32. Заголовок: Так у GetConsoleWind..


Так у GetConsoleWindow нет параметров. Значит, надо так:

HB_FUNC( GETCONSOLEWINDOW )
{
hb_retnl( GetConsoleWindow( ) ) ;
}

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2869
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 10:35. Заголовок: хммм Warning W8065 t..


хммм
Warning W8065 test.prg 1209: Call to function 'GetConsoleWindow' with no prototype in function HB_FUN_GETCONSOLEWINDOW

ага...
В Wincon.h BCC 55 нет такой функции а в BCC 582 есть

И что же делать теперь если у меня BCC 55 ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2870
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 11:40. Заголовок: Dima пишет: а в BCC..


Dima пишет:

 цитата:
а в BCC 582 есть


Попробовал пересобрать HArbour 3.2 под BCC 582 и облом. Во время сборки вывалилась месага
об отсутствии Unicows.dll , что ему надо ? ;) Под BCC 55 сборка проходила нормально.

PS
Windows XP SP3

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2791
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.03.13 12:08. Заголовок: Пишут, что GetConsol..


Пишут, что GetConsoleWindow есть в winapi начиная с win2k. Это значит, что программы, ее использующие, не будут работать под win98
Если такой вариант устраивает, то есть несколько вариантов решения проблемы:
1. Попробовать просто скопировать прототип этой функции из wincon.h от bcc582. Может быть такой фокус пройдет.
2. Выяснять, почему не получается сборка с 5.8.2. Должна получаться. unicows.lib в поставке харбора есть, и для bcc 5.5 он нужен точно так же, как и для bcc 5.8.2
3. Использовать не bcc 5.8.2, а mingw, что перспективнее
4. Использовать для загрузки GetConsoleWindow тот же прием, что и для недокументированной SetConsoleFont, т.е. загружать ее из kernel32.dll, тогда тоже можно оставить bcc55

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2871
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 12:13. Заголовок: Pasha Понял. Разобр..


Pasha
Понял. Разобрался уже. Спасибо

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2872
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 13:54. Заголовок: Пересобрал Harbour п..


Пересобрал Harbour под Mingw 4.7.2
Собирался он очень долго.
По прежнему такой код не катит при сборке
obj/sklad.o:sklad.c:(.text+0x574): undefined reference to `GetConsoleWindow'

#PRAGMA BEGINDUMP

#include "hbapi.h"
#include "Windows.h"
#include "Wincon.h"

HB_FUNC( GETCONSOLEWINDOW )
{
hb_retnl( GetConsoleWindow( ) ) ;
}
#PRAGMA ENDDUMP

В wincon.h
есть вот такой код
#if (_WIN32_WINNT >= 0x0500)
BOOL WINAPI GetConsoleDisplayMode(LPDWORD);
HWND WINAPI GetConsoleWindow(void);
#endif

Вопрос откуда компилятор знает значение _WIN32_WINNT , похоже у меня эта ветка и не сработала

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 37 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 30
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет