Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML] Automatyczne zamykanie konsoli

Ostatnio zmodyfikowano 2012-11-06 22:41
Autor Wiadomość
tirou
Temat założony przez niniejszego użytkownika
» 2012-11-06 21:04:57
DejaVu ( i inni) no własnie o to chodzi, że ja NIE chce jej włączać, a się włącza za kazdym razem, i jesli okno sie zamyka: app.Close() to konsole trzeba również wyłaczać, a chciałbym, żeby się nie włączała bądź, automatycznie wyłaczała .
P-68647
jsc
» 2012-11-06 21:08:11
Chodzi ci o to:
C/C++
#include <SFML/Window.hpp>

int main()
{
    sf::Window oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Kurs SFML - http://cpp0x.pl" );
    while( oknoAplikacji.IsOpened() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::MouseButtonPressed && zdarzenie.MouseButton.Button == sf::Mouse::Middle )
                 oknoAplikacji.Close();
           
        }
        oknoAplikacji.Display();
    }
    return 0;
}
?
P-68648
akwes
» 2012-11-06 21:09:16

A co twojego sposobu: zamykasz całą aplikację, a nie tylko konsolę.

Pierwsze pytanie to sugerowało.

aby konsola wyłączała się automatycznie po zamknięciu okna

No ale tu wychodzi, że najlepiej żeby jej nie było. @autorze, w jakim środowisku (programie) pracujesz (piszesz kod)?

Ukrywanie konsoli podczas trwania programu
P-68650
tirou
Temat założony przez niniejszego użytkownika
» 2012-11-06 21:13:59
Code Blocks ?
P-68653
akwes
» 2012-11-06 21:19:10
Poszukaj w ustawieniach kompilacji i zmień na "Windows application", z "Console application" (albo coś w tym stylu)

lub przeczytaj ten temat: Ukrywanie konsoli podczas trwania programu
P-68656
DejaVu
» 2012-11-06 21:20:43
To nie jest problem ukrywania konsoli, bowiem proces moim zdaniem pozostanie w pamięci. Konsola powinna się sama zamknąć po poprawnym zamknięciu aplikacji SFML (chyba, że jakiegoś babola tam wsadzili).

/edit:
Na tej wersji SFML 2.0, którą posiadam to po zamknięciu okna aplikacji, zamyka się również konsola (Visual C++).

/edit2:
C/C++
sf::Event event;
while( window.pollEvent( event ) )
{
    // Close window : exit
    if( event.type == sf::Event::Closed )
         window.close();
   
    if( event.key.code == sf::Keyboard::Escape )
         window.close();
   
}
Wyjście krzyżykiem jak i za pomocą ESC działa prawidłowo.
P-68657
akwes
» 2012-11-06 21:26:52
Ten kod będzie działał dalej pomimo zamknięcia okna. Po prostu inny warunek w pętli while.

C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow App( sf::VideoMode( 800, 600 ), "SFML works!" );
    while( true )
    {
        sf::Event event;
        while( App.pollEvent( event ) )
        {
            if( event.type == sf::Event::Closed )
                 App.close();
           
        }
    }
   
    return 0;
}

Natomiast tu zamknięcie będzie równo
C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow App( sf::VideoMode( 800, 600 ), "SFML works!" );
    while( true )
    {
        sf::Event event;
        while( App.pollEvent( event ) )
        {
            if( event.type == sf::Event::Closed )
            {
                App.close();
                return 0;
            }
        }
    }
   
    return 0;
}

Tak samo jak tu:

C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow App( sf::VideoMode( 800, 600 ), "SFML works!" );
    while( App.isOpen() )
    {
        sf::Event event;
        while( App.pollEvent( event ) )
        {
            if( event.type == sf::Event::Closed )
                 App.close();
           
        }
       
    }
    return 0;
}


// edit
@DejaVu w pierwszym kodzie znika Ci konsola razem z oknem ;> ?

//edit 2
Czyli jednak i tak kwestia IDE :D
P-68658
tirou
Temat założony przez niniejszego użytkownika
» 2012-11-06 21:27:16
Po poprawnym wylaczeniu okna SFML w konsoli wyswietla sie komunikat poprawnego zakonczenia dzialania programu:" Process returned 0 . Press any key to continue..."

Jednak chciałbym, aby konsola zamykała się od razu po zamknieciu SFML.
P-68659
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona