Автор | Сообщение |
|
| постоянный участник
|
Пост N: 53
Зарегистрирован: 15.09.05
|
|
Отправлено: 11.06.09 13:08. Заголовок: Terminal WVT & EXIT PROCEDURE
Привет всем на форуме ! Перекомпилировал один из своих проектов HARBOUR'ом используя терминал WVT Все работает нормально за изключением то что не срабатывает EXIT PROCEDURE при нажатии крестика для закрытия окна . Придется както убирать его или заставить работать EXIT PROCEDURE при нажатии крестика но как . Может у когото приходилось ето делать , Напишите пожалуста ! сборка харбура взята от сюда : http://cch4clipper.blogspot.com/2009/05/latest-developments-in-harbourby-viktor.html с применением новой утилитой HBMK2 Виктора . По моему очень удобная вещь . В начале программы стоит REQUEST HB_GT_WVT REQUEST HB_GT_WVT_DEFAULT hb_gtInfo(HB_GTI_FONTSIZE, 28) hb_gtInfo(HB_GTI_FONTWIDTH, 14) компилирую так : --------------------------------------------- c:\harbour\bin\HBMK2 CCH.HBP -comp=bcc а CCH.HBP содержит: -------------------------- -oCCH -gtWVT K.PRG K11.PRG K12.PRG ASSI.PRG CALC87.PRG LOCKS.PRG TEXTBROW.PRG INSTOGLE.PRG SHADOW.PRG fttext.c ------------------------------------------------
|
|
|
Ответов - 39
, стр:
1
2
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 677
Зарегистрирован: 09.10.06
|
|
Отправлено: 11.06.09 13:22. Заголовок: Проще всего запретит..
Проще всего запретить этот самый крестик hb_GtInfo( HB_GTI_CLOSABLE, .f. )
|
|
|
|
| moderator
|
Пост N: 196
Зарегистрирован: 06.07.06
|
|
Отправлено: 11.06.09 13:28. Заголовок: hb_gtinfo( HB_GTI_NO..
hb_gtinfo( HB_GTI_NOTIFIERBLOCK, bCodeBlock ) устанавливает кодоблок bCodeBlock, выполняющийся при нажатии крестика. Если блок возвращает 0, приложение завершается, если другое число - продолжает работу.
|
|
|
|
| постоянный участник
|
Пост N: 54
Зарегистрирован: 15.09.05
|
|
Отправлено: 11.06.09 13:28. Заголовок: Спасибо за ответ !
Спасибо за ответ Петр и вам Александр ! а где можно почитать об етих функциях , неужели только копаясь в изходниках Харбура Еще раз спасибо !
|
|
|
|
| moderator
|
Пост N: 197
Зарегистрирован: 06.07.06
|
|
Отправлено: 11.06.09 13:32. Заголовок: Увы ... Именно так я..
Увы ... Именно так я это сейчас и нашел ... Можно еще, конечно, порыться в архивах майл-листов или comp.lang.xharbour
|
|
|
|
| |
Пост N: 327
Зарегистрирован: 08.04.06
|
|
Отправлено: 12.06.09 01:30. Заголовок: alkresin пишет: hb_..
alkresin пишет: цитата: | hb_gtinfo( HB_GTI_NOTIFIERBLOCK, bCodeBlock ) |
| Жаль, что нельзя запретить закрытие программы по кресту в оконном режиме терминала GTWIN...
|
|
|
|
| |
Пост N: 1248
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.09 08:05. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | Жаль, что нельзя запретить закрытие программы по кресту в оконном режиме терминала GTWIN |
| Ня ;) SetConsoleTitle("TEST") do WHILE ( hWnd:= FindWindow( "TEST" ) ) == 0 ENDdo DeleteCloseButton( hWnd)
|
|
|
|
| |
Пост N: 328
Зарегистрирован: 08.04.06
|
|
Отправлено: 12.06.09 10:39. Заголовок: Dima пишет: SetCons..
Dima пишет: цитата: | SetConsoleTitle() FindWindow() DeleteCloseButton() |
| На все функции - Unresolved external при линковке. Откуда брал?
|
|
|
|
| |
Пост N: 1249
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.09 10:41. Заголовок: Лукашевский #PRAGM..
Лукашевский #PRAGMA BEGINDUMP #include "hbapi.h" #include "Windows.h" HB_FUNC( SETCONSOLETITLE ) { hb_retl( SetConsoleTitle( hb_parc( 1 ) ) ) ; } HB_FUNC( FINDWINDOW ) { hb_retnl( (LONG)FindWindow( NULL, hb_parc( 1 ) ) ) ; } HB_FUNC( DELETECLOSEBUTTON ) { DeleteMenu(GetSystemMenu( (HWND)hb_parnl( 1 ), FALSE), SC_CLOSE, MF_BYCOMMAND ) ; DrawMenuBar( (HWND)hb_parnl( 1 ) ); } #PRAGMA ENDDUMP
|
|
|
|
| |
Пост N: 329
Зарегистрирован: 08.04.06
|
|
Отправлено: 12.06.09 10:58. Заголовок: Dima, спасибо огромн..
Dima, спасибо огромное!!! А может быть, ты ещё знаешь, как в полноэкранном режиме GTWIN убрать курсор мыши (хотя бы сделать его невидимым)? Это одна из последних нерешённых проблем, которая у меня осталась в xHarbour'е...
|
|
|
|
| |
Пост N: 1250
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.09 11:02. Заголовок: Лукашевский request..
Лукашевский request HB_NOMOUSE
|
|
|
|
| |
Пост N: 330
Зарегистрирован: 08.04.06
|
|
Отправлено: 12.06.09 11:09. Заголовок: Dima пишет: request..
Dima пишет: Сказка! Фантастика! Удалось!
|
|
|
|
|
| |
Пост N: 331
Зарегистрирован: 08.04.06
|
|
Отправлено: 12.06.09 20:15. Заголовок: Dima пишет: SetCons..
Dima пишет: цитата: | SetConsoleTitle() FindWindow() DeleteCloseButton() |
| Рано я обрадовался... Началась как раз фантастика: 1. Использование SetConsoleTitle() каким-то образом отменяет SetConsoleDisplayMode(1). Причём не важно, где они стоят по отношению друг к другу - до или после. Просто вот если используем SetConsoleTitle(), то SetConsoleDisplayMode(1) - переход в полноэкранный режим выполнения - уже не срабатывает, по крайней мере при установленном в ярлыке запуска режиме совместимости с Win'95. 2. После SetConsoleTitle('ООО "Привет+"') не срабатывает FindWindow('ООО "Привет+"'). Для латиницы FindWindow() работает, для кириллицы - увы, нет... Больше всего, конечно, напрягает пункт 1...
|
|
|
|
| |
Пост N: 1251
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.09 20:27. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | Для латиницы FindWindow() работает, для кириллицы - увы, нет |
| Так и есть.
|
|
|
|
| |
Пост N: 1252
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.09 20:41. Заголовок: Лукашевский Бумс.....
Лукашевский Бумс... а так ? local nStdOut := Hb_GetStdOut() nResult := SetConsoleDisplayMode(nStdOut, CONSOLE_FULLSCREEN)
|
|
|
|
| |
Пост N: 332
Зарегистрирован: 08.04.06
|
|
Отправлено: 12.06.09 21:31. Заголовок: Dima пишет: CONSOLE..
Dima пишет: Откуда берём? В папке INCLUDE ни в одном файле такого нет, в BCC55 - тоже нет, и в скачанных SOURCE'ах - тоже... Ну да ладно, заменил на 1. Ничего не изменилось - как запускается свёрнутым, так и остаётся, пока мышью не тыкнешь. Но когда тыкнешь мышью - да, запускается в полном экране. Может, проблема немного в другом - окно программы при запуске мало того что свёрнуто, так ещё и неактивно. Какую функцию можно использовать для активизации терминального окна? Хотя, с другой стороны - без SetConsoleTitle() окно прекрасно активизируется и разворачивается во весь экран функцией SetConsoleDisplayMode(1), вот в чём фокус.
|
|
|
|
| |
Пост N: 1253
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.09 09:48. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: #define CONSOLE_WINDOWMODE 0 #define CONSOLE_FULLSCREEN 1
|
|
|
|
| |
Пост N: 333
Зарегистрирован: 08.04.06
|
|
Отправлено: 13.06.09 10:56. Заголовок: Dima пишет: #define..
Dima пишет: цитата: | #define CONSOLE_FULLSCREEN 1 |
| Понятно. Я так и написал - SetConsoleDisplayMode(nStdOut, 1). Видимый эффект отсутствует.
|
|
|
|
| |
Пост N: 1254
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.09 11:35. Заголовок: Лукашевский пишет: ..
|
|
|
|
| |
Пост N: 334
Зарегистрирован: 08.04.06
|
|
Отправлено: 13.06.09 12:38. Заголовок: Dima пишет: Пробни ..
Dima пишет: Всё то же: nStdOut = 1 nResult = 1 Dima пишет: цитата: | Значит ты не там где нужно вставил эту строку. |
| Что значит "не там где нужно"? А где её нужно вставлять?
|
|
|
|
| |
Пост N: 1255
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.09 12:50. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | Что значит "не там где нужно"? А где её нужно вставлять? |
| Кусок текста покажи.
|
|
|
Ответов - 39
, стр:
1
2
All
[только новые]
|
|