C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
WinAPI, DirectX, graphic libraries., Нужна помощь.
Mr.Cherry
Отправлено: 31.05.2006, 02:09


Ученик-кочегар

Группа: Участник
Сообщений: 4



Скажите плиз если знаете:

1. Нужна фукция нахождения разрешения экрана только на апи, без vcl.

2. Можно ли как нибуть присобачить DirectX 9 к билдеру. У меня есть книга по программированию игр на нём. Там написано что есть спец библиотечки для билдера.

3. Нужно чтобы билдер начал воспринимать основные форматы изображений. Больше всего надо PNG.
Mr.Cherry
Отправлено: 31.05.2006, 09:35


Ученик-кочегар

Группа: Участник
Сообщений: 4



Ещё вопрос:
Как получить событие Развернуть/Восстановить, OnResize почему то на них не реагирует.
CyberMind
Отправлено: 31.05.2006, 10:05


Ученик-кочегар

Группа: Участник
Сообщений: 29



QUOTE (Mr.Cherry @ 31/05/2006, 09:35)
Ещё вопрос:
Как получить событие Развернуть/Восстановить, OnResize почему то на них не реагирует.

А по-моему реагирует
Mr.Cherry
Отправлено: 31.05.2006, 13:12


Ученик-кочегар

Группа: Участник
Сообщений: 4



Нет, не реагирует.
Мне уже на другом форуме ответили, что нужно брать события OnHide, OnShow, но это для кнопки свернуть, а мне надо для развернуть.
Gedeon
Отправлено: 31.05.2006, 14:34


Ветеран

Группа: Модератор
Сообщений: 1742



Вам надо отловить сообщение WM_SYSCOMMAND SC_MAXIMIZE|SC_RESTORE

1. GetSystemMetrics(...)
SM_CXFULLSCREEN, SM_CYFULLSCREEN

Отредактировано Gedeon — 31/05/2006, 14:40
CyberMind
Отправлено: 31.05.2006, 14:53


Ученик-кочегар

Группа: Участник
Сообщений: 29



QUOTE
1. Нужна фукция нахождения разрешения экрана только на апи, без vcl.

Я вот так сделал(получается информация о текущем режиме):
CODE

LPDEVMODE devmode=new DEVMODE;
devmode->dmSize = sizeof(DEVMODE);
if(EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,devmode))
  {
   AnsiString strmsg;
   strmsg = "Ширина: "+ AnsiString(devmode->dmPelsWidth);
   strmsg += "\nВысота: "+ AnsiString(devmode->dmPelsHeight);
   ShowMessage(strmsg);
  }
  else
    ShowMessage("Ошибка определения свойств экрана.");
 delete devmode;
Gedeon
Отправлено: 31.05.2006, 16:13


Ветеран

Группа: Модератор
Сообщений: 1742



Кстати я был немного неправ, нужны др. параметры в функцию
SM_CXSCREEN, SM_CYSCREEN
Mr.Cherry
Отправлено: 31.05.2006, 16:24


Ученик-кочегар

Группа: Участник
Сообщений: 4



1.Работает с
cx = GetSystemMetrics(SM_CXSCREEN);
cy = GetSystemMetrics(SM_CYSCREEN);
3.Вроде надо WM_SIZE сообщение ловить.

Вернуться в Вопросы программирования в C++Builder