IrrlichtФорум

Глюки с ГУИ (2 стр)

Страницы: 1 2
#15
23:20, 17 янв 2010

Не знаю актуальна эта ветка или уже нет.
Дело в том, что в разных виндовых темах высота заголовка окна SM_CYCAPTION разная,
но Irrlicht в CIrrDeviceWin32.c при созднии окна не учитывает этой высоты.
Этот важный параметр учтен лишь в CursorControl.
Затем везде в движке фигурирует высота созданного таким образом окна.
Подобный код в приложении возможно решил бы проблему:

#define WINDOZE defined(_WIN32)||defined(_WIN64)||defined(WIN32)||defined(WIN64)
bool Init_Irr(core::dimension2d<s32> Resolution,bool fullscreen)
{
  if(!device)
  {
    s32 Real_resY=Resolution.Y;
    #if WINDOZЕ
    int FSCRDBG = GetSystemMetrics(SM_CYCAPTION)
    if(!fullscreen) Real_resY-=FSCRDBG%2? FSCRDBG+1:FSCRDBG;
    #endif //WINDOZE

    core::dimension2d<s32> dim=core::dimension2d<s32>(Resolution.X,Real_resY);         
    device=createDevice(
                        Driver_Type,
                        dim,
                        .........         
                        );
  }
  if(!device) return false;
return true;
}

Далее в приложении считаем конечно :) реальную высоту окна
driver->getScreenSize().Height

Страницы: 1 2
IrrlichtФорум

Тема в архиве.