Автор | Сообщение |
|
| |
Пост N: 2763
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 00:04. Заголовок: Full screen mode
Windows XP и ниже поддерживает такой режим. Начиная с VISTA такого режима нет для консольных приложений. Как выставить в приложении режим развернуть окно на весь экран в зависимости от версии OS Windows ? Что то типа такого нужно if isfullscreemode() // все как обычно как в Clipper else // развернем окошко поширше и на весь экран endif
|
|
|
Ответов - 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 -терминал использовать. Для хХарбора выкладывал уже, для Харбора еще "допиливать" нужно, там пара функций не работает...
|
|
|
|
| |
Пост N: 2765
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.03.13 10:22. Заголовок: Andrey пишет: Какой..
Andrey пишет: цитата: | Какой терминал и Харбор используешь ? |
| GTWIN Ведь я же могу ручками зайти в свойства окна и подобрать нужный шрифт для окна что бы оно было на весь экран или почти. А как это программно задать ? Andrey пишет: цитата: | то надо GTVWG -терминал использовать |
| Там ясно как сделать.
|
|
|
|
| постоянный участник
|
Пост N: 2745
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.03.13 12:41. Заголовок: Dima пишет: А как э..
Dima пишет: цитата: | А как это программно задать ? |
| Не знаю... Я из-за этого ушел на GTVWG -терминал.
|
|
|
|
| |
Пост N: 2860
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.03.13 13:10. Заголовок: Andrey пишет: Не зн..
|
|
|
|
| Администратор
|
Пост 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
|
|
|
|
| |
Пост N: 2861
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.03.13 15:05. Заголовок: Pasha а параметры к..
Pasha а параметры какие ? Похоже число (поигрался) и вплоть до 10 размер окна меняется. Но все равно что то не то.
|
|
|
|
| Администратор
|
Пост N: 2786
Зарегистрирован: 23.05.05
|
|
Отправлено: 23.03.13 15:11. Заголовок: Dima пишет: а парам..
Dima пишет: Размер шрифта win_SetConsoleFont( <nFontSize> )
|
|
|
|
| |
Пост N: 2862
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.03.13 15:15. Заголовок: А сам шрифт можно ук..
А сам шрифт можно указать ?
|
|
|
|
| Администратор
|
Пост N: 2787
Зарегистрирован: 23.05.05
|
|
Отправлено: 23.03.13 15:27. Заголовок: В этой функции - нет..
В этой функции - нет. Да и для консоли windows доступен только шрифт Lucida Console, других вариантов нет.
|
|
|
|
| |
Пост N: 2863
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.03.13 15:32. Заголовок: Pasha Спасибо..
Pasha Спасибо
|
|
|
|
| |
Пост 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 ставятся точечные шрифты
|
|
|
|
|
| |
Пост N: 289
Зарегистрирован: 12.11.06
|
|
Отправлено: 24.03.13 08:12. Заголовок: Dima пишет: В этой ..
Pasha пишет: цитата: | В этой функции - нет. Да и для консоли windows доступен только шрифт Lucida Console, других вариантов нет. |
| Почему: Courier New & Terminal так же ставятся
|
|
|
|
| Администратор
|
Пост N: 2789
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.03.13 09:34. Заголовок: AndreyZh пишет: Поч..
AndreyZh пишет: цитата: | Почему: Courier New & Terminal так же ставятся |
| Значит, на разных версиях windows по разному. У меня вот есть только Lucida Console
|
|
|
|
| |
Пост N: 2868
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.03.13 10:21. Заголовок: Pasha А как получит..
|
|
|
|
| Администратор
|
Пост N: 2790
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.03.13 10:32. Заголовок: Так у GetConsoleWind..
Так у GetConsoleWindow нет параметров. Значит, надо так: HB_FUNC( GETCONSOLEWINDOW ) { hb_retnl( GetConsoleWindow( ) ) ; }
|
|
|
|
| |
Пост 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 ?
|
|
|
|
| |
Пост N: 2870
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.03.13 11:40. Заголовок: Dima пишет: а в BCC..
Dima пишет: Попробовал пересобрать HArbour 3.2 под BCC 582 и облом. Во время сборки вывалилась месага об отсутствии Unicows.dll , что ему надо ? ;) Под BCC 55 сборка проходила нормально. PS Windows XP SP3
|
|
|
|
| Администратор
|
Пост 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
|
|
|
|
| |
Пост N: 2871
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.03.13 12:13. Заголовок: Pasha Понял. Разобр..
Pasha Понял. Разобрался уже. Спасибо
|
|
|
|
| |
Пост 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 , похоже у меня эта ветка и не сработала
|
|
|
Ответов - 37
, стр:
1
2
All
[только новые]
|
|