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: 2792
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.03.13 14:53. Заголовок: Dima пишет: Пересоб..


Dima пишет:

 цитата:
Пересобрал Harbour под Mingw 4.7.2
Собирался он очень долго.



Помнится, наш немецкий друг со своим знаменитым шефом жаловался на медленную сборку под bcc55. Это он сборки современными компиляторами еще не видел :-)


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




У меня тоже. Харбор получается не определят этот макрос. Ну и ладно. Эту функцию можно определить и вручную:

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

WINBASEAPI
HWND
APIENTRY
GetConsoleWindow(
VOID
);

HB_FUNC( WIN_GETCONSOLEWINDOW )
{
hb_retnl( ( HB_LONG ) GetConsoleWindow( ) );
}

#pragma ENDDUMP

Функция вроде бы работает, что-то возвращает.

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




Пост N: 2873
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 15:02. Заголовок: Pasha Да работает ;..


Pasha
Да работает ;)
Вот только ворнинг при сборке
sklad.prg: In function 'HB_FUN_GETCONSOLEWINDOW':
sklad.prg:1227:1: warning: passing argument 1 of 'hb_retnl' makes integer from pointer without a cast [enabled by defaul
t]
In file included from sklad.prg:1112:0:
c:/hb32mingw/include/hbapi.h:699:25: note: expected 'long int' but argument is of type 'HWND'

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




Пост N: 2874
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 15:07. Заголовок: ага вроде так надо ..


ага вроде так надо

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


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




Пост N: 2875
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 15:18. Заголовок: Все как бы нормально..


Все как бы нормально , но перестала нормально работать WIN_SETCONSOLEFONT()
Когда сборка была под BCC все было норм а сейчас она не реагирует на параметр больше 10
И до кучи еще вопрос. Можно ли опционально указать hbmk2 в качестве параметра где
искать компилятор , дабы не прописывать путь к нему через SET PATH ?

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


Пост N: 1138
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 24.03.13 16:11. Заголовок: Dima пишет: Можно л..


Dima пишет:

 цитата:
Можно ли опционально указать hbmk2 в качестве параметра где
искать компилятор , дабы не прописывать путь к нему через SET PATH ?





Я обычно запускаю скриптом
@rem hbmk.bat

@ECHO OFF
setlocal
set PATH=d:\mingw\bin

"%~dp0hbmk2.exe" %*
endlocal

Здесь скрипт находится в одной папке с hbmk2


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


Пост N: 1139
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 24.03.13 16:20. Заголовок: Dima пишет: Все как..


Dima пишет:

 цитата:
Все как бы нормально , но перестала нормально работать WIN_SETCONSOLEFONT()



А можно все в студию, вместе с обьяснительной
Самодостаточный пример

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




Пост N: 2876
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 16:21. Заголовок: Петр пишет: set PAT..


Петр пишет:

 цитата:
set PATH=d:\mingw\bin


я тоже так , но думалось что есть опция для hbmk2 , но пока ее нет .

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




Пост N: 2877
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 16:49. Заголовок: Петр пишет: А можно..


Петр пишет:

 цитата:
А можно все в студию, вместе с обьяснительной
Самодостаточный пример


ХЗ что было ;)
Но сейчас работает одинаково и в BCC и MINGW

 
proc main
cls
setmode(25,80)
WIN_SETCONSOLEFONT(12) // фонт 24 Lucida console
@ 10,10 say "TEST" color "gr+/r"

WAIT "TEST 24 Lucida console"

return

#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: 2879
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 18:10. Заголовок: Pasha пишет: У меня..


Pasha пишет:

 цитата:
У меня тоже. Харбор получается не определят этот макрос


Мне вот стало интересно если харбор не определяет такие макросы а они натыканы
по всюду , тогда встает под сомнение и сборка харбор под MINGW или я не прав !?
Когда собирался харбор под MinGW частенько возникали разного рода ворнинги ,
и меня это малехо напрягает

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




Пост N: 2793
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.03.13 18:55. Заголовок: Dima пишет: Мне вот..


Dima пишет:

 цитата:
Мне вот стало интересно если харбор не определяет такие макросы а они натыканы
по всюду , тогда встает под сомнение и сборка харбор под MINGW или я не прав !?
Когда собирался харбор под MinGW частенько возникали разного рода ворнинги ,
и меня это малехо напрягает



Я могу только предположить. Если в харборе будет определен макрос вида.

#define _WIN32_WINNT 0x0500

и будут использованы функции, которые есть в версиях windows старше некоторой, то харбор будет непригоден для использования в младших версиях этой ОС.
А харбор универсален, и его можно использовать для всех версий windows.
Но можно определить подобный макрос в своих программах, и использовать такие функции.
К примеру:

#define _WIN32_WINNT 0x0500

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

HB_FUNC( WIN_GETCONSOLEWINDOW )
{
hb_retnl( ( HB_LONG ) GetConsoleWindow( ) );
}


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




Пост N: 2881
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 19:00. Заголовок: Pasha пишет: #defin..


Pasha пишет:

 цитата:
#define _WIN32_WINNT 0x0500

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

HB_FUNC( WIN_GETCONSOLEWINDOW )
{
hb_retnl( ( HB_LONG ) GetConsoleWindow( ) );
}



Не прокатило и снова ругается что нет GetConsoleWindow

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




Пост N: 2794
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.03.13 19:05. Заголовок: У меня с mingw работ..


У меня с mingw работает. А с bcc55 работать не будет, поскольку прототипа этой функции нет совсем.

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




Пост N: 2882
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 19:06. Заголовок: Pasha пишет: У меня..


Pasha пишет:

 цитата:
У меня с mingw работает


про MINGW и пишу , помучаю еще.........

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




Пост N: 2883
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 19:33. Заголовок: Dima пишет: помучаю..


Dima пишет:

 цитата:
помучаю еще.........


Не фига ;)
Только вот с такой вставкой и работает

WINBASEAPI
HWND
APIENTRY
GetConsoleWindow(
VOID
);

зы
Mingw 4.7.2

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




Пост N: 2884
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 22:47. Заголовок: Жесть. Убил кучу вре..


Жесть. Убил кучу времени.
Вот так не cобирается и не находит GetConsoleWindow

 
PROC Main
cls
? GETCONSOLEWINDOW()
wait
return

#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 ) ) ) ;
}

#PRAGMA ENDDUMP


#pragma BEGINDUMP
#define _WIN32_WINNT 0x0500
#include "hbapi.h"
#include "windows.h"

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

#PRAGMA ENDDUMP



а вот так собирается и работает


 
PROC Main
cls
? GETCONSOLEWINDOW()
wait
return

#pragma BEGINDUMP

#define _WIN32_WINNT 0x0500
#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( GETCONSOLEWINDOW )
{
hb_retnl( (HB_LONG)GetConsoleWindow( ) ) ;
}

#PRAGMA ENDDUMP



Где я ошибаюсь ?



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




Пост N: 2795
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.03.13 23:43. Заголовок: Dima пишет: Жесть. ..


Dima пишет:

 цитата:
Жесть. Убил кучу времени.
Вот так не cобирается и не находит GetConsoleWindow



Проблема в том, что в этом коде строка

#include "windows.h"

встречается 2 раза, причем первый раз макрос _WIN32_WINNT не задан. Но срабатывает только включение windows.h первый раз, без определения _WIN32_WINNT
Второй оператор include игнорируется
Поэтому правильно было бы включить все в один фрагмент BEGINDUMP - ENDDUMP, в начале которого указать

#define _WIN32_WINNT 0x0500
#include "hbapi.h"
#include "windows.h"

а затем включать функции.


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




Пост N: 2885
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.03.13 23:58. Заголовок: Pasha Понял. Спасиб..


Pasha
Понял. Спасибо !

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

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