Autor Wątek: Problem z używaniem WinApi i Irrlicht'a razem.  (Przeczytany 2016 razy)

Offline Brainiac

  • Użytkownik
    • Pc Prodigy

# Maj 18, 2008, 00:49:52
Witam.
Mam pewien problem.
Tworze sobie device w już gotowym okienku. (Tak jak pokazują w SDK). Niestety nie działa mi wtedy GUI irrlichtowskie. Mimo iż np. okieno (te w IGUI) się pokazuje, nie można go przesuwać. Tak jak by program nie odbierał sygnałów d muszki i klawiatury. Czy to normalne? Jak to naprawić?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Maj 18, 2008, 01:15:46
Jeśli wołasz device->Run(), to obsługa eventów powinna przebiegać bez zarzutu. Napisz więcej co tam nakombinowałeś bo raczej nikt się nie domyśli :).

Offline Brainiac

  • Użytkownik
    • Pc Prodigy

# Maj 18, 2008, 01:34:05
Zrobiłem to jeszcze raz i już wszystko działa. Nie mam pojęcia dlaczego wcześniej nie działało... :D

Offline Brainiac

  • Użytkownik
    • Pc Prodigy

# Maj 18, 2008, 02:41:11
Kurde... Dalej lipa.
Jeżeli wstawię IDevice->run(); przed PeekMessage; to mój program nie odbiera wiadomości. Natomiast gdy wstawię po to program odbiera wiadomości ale nie reaguje na myszkę i klawiaturę.

Offline Xion

  • Redaktor
    • xion.log

# Maj 18, 2008, 11:05:55
To chyba dość oczywiste: żeby Irrlicht reagował na komunikaty, musi skądś je dostawać. Jeśli run() uruchamia własną pętlę komunikatów, to nie ma problemu. Jeśli zaś masz własną pętlę, to nie ma siły żeby Irrlicht sam dostawał te komunikaty, które go interesują - o ile nie ma jakiegoś innego sposobu, żeby je do niego przekazać.

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Maj 18, 2008, 12:25:09
Jeśli musisz sam odbierać windowsowe komunikaty, to możesz obyć się bez device->run(). Zajrzyj sobie do kodu Irrlichta (konkretnie do pliku CIrrDeviceWin32.cpp) jak jest zrobione to połączenie z WinAPI. Żeby GUI działało musisz sam obsługiwać komunikaty myszy i klawiatury i wołać postEventFromUser, aby Irrlicht mógł wygenerować swoje zdarzenia.