Witam.

W jednym z moich programów chciałem połączyć SFML z WinAPI, ale natknąłem się na problem. Otóż nie wiem w jaki sposób mam korzystać z wydarzeń (sf::Event).

Wszelkie próby spełzły na niczym, gdziekolwiek bym nie umieścił GetEvent().

Korzystam z tego kodu:

http://www.sfml-dev.org/tutorials/1.6/graphics-win32.php

Tutaj mały fragment mały fragment zmodyfikowany przez mnie , najistotniejszy:

sf::Event Event;
MSG Message;

bool lol = false;

Message.message = static_cast < UINT >( ~WM_QUIT );
while( Message.message != WM_QUIT )
{
    if( PeekMessage( & Message, NULL, 0, 0, PM_REMOVE ) )
    {
        // If a message was waiting in the message queue, process it
        TranslateMessage( & Message );
        DispatchMessage( & Message );
    }
    else
    {

        while( SFMLView.GetEvent( Event ) )
        {
            if( Event.Type == sf::Event::KeyPressed && Event.Key.Code == sf::Key::A ) lol = true;

        }

        // SFML
        SFMLView.Clear( sf::Color::Yellow );

        if( lol == true ) SFMLView.Draw( sf::Shape::Circle( 30, 30, 30, sf::Color::Blue ) );

        //SFMLView.Draw(sf::Shape::Circle(Message.pt.x,Message.pt.y,30,sf::Color::Cyan));
        SFMLView.Draw( sf::Shape::Circle( 20, 20, 30, sf::Color::Cyan ) );

        SFMLView.Display();

    }
}

Wydaje mi się że to nie działa dlatego iż SFMLView jest w hierarchii pod Window, więc to on wszystko zgarnia.

Macie jakiś sposób, czy też pomysł, jak zrealizować to tak, aby można było w miarę normalnie korzystać z wydarzeń?

Dziękuję za wszystkie odpowiedzi.

Pozdrawiam.