Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

MFC, opóźnienie wizualizacji

Jemioł 15 Sty 2009 21:38 543 2
  • #1 15 Sty 2009 21:38
    Jemioł
    Poziom 2  

    Witam wszystkich.

    Najpierw kilka podstawowych danych:
    *język programu C++
    *środowisko Visual Studio 2008
    *aplikacja MFC, DialogBased

    A teraz sprecyzowanie problemu:
    Chcę (muszę) napisać program symulacyjny, którego jednym z elementów ma być wizualizacja obsługi procesów. W tym celu użyłem progress bar'ów, zupełnie to zresztą nieistotne. Chodzi mi o spowolnienie samej wizualizacji. Pierwszą moją myślą było użycie funkcji sleeep, jednak nie spełnia ona pokładanych w niej nadziei - słupki bowiem faktycznie elegancko wolniej opadają, jednak po zapuszczeniu symulacji okno programu przestaje reagować na cokolwiek, nie mogę go przesuwać, wciskać żadnych przycisków, jednym słowem brak jakiejkolwiek interakcji. Całość wraca do siebie, gdy obsługa procesów (wizualizacja) się zakończy, czyli razem z końcem wywołań funkcji sleep.
    To co chciałbym osiągnąć chyba już jest jasne - aktywne i interaktywne okienko programu przy spowolnieniu działania algorytmu wizualizacji.

    Bardzo, bardzo byłbym wdzięczny za wszelkie wskazówki i pomysły.
    Pozdrawiam

    0 2
  • #2 16 Sty 2009 01:41
    elektryk
    Poziom 42  

    Jemioł napisał:
    Chodzi mi o spowolnienie samej wizualizacji. Pierwszą moją myślą było użycie funkcji sleeep, jednak nie spełnia ona pokładanych w niej nadziei - słupki bowiem faktycznie elegancko wolniej opadają, jednak po zapuszczeniu symulacji okno programu przestaje reagować na cokolwiek, nie mogę go przesuwać, wciskać żadnych przycisków, jednym słowem brak jakiejkolwiek interakcji. Całość wraca do siebie, gdy obsługa procesów (wizualizacja) się zakończy, czyli razem z końcem wywołań funkcji sleep.
    Oj wychodzą braki z podstaw programowania. Jak już się upierasz żeby używać sleepa to umieść swoje "symulacje" w oddzielnym wątku. A jak nie chcesz wątków to swoje animacje wykonuj w obsłudze timera.

    0
  • #3 16 Sty 2009 11:41
    Jemioł
    Poziom 2  

    Hm... Sęk w tym, że MFC nigdy nikt mnie nie uczył.
    Co do funkcji sleep absolutnie się nie upieram, wręcz nastawiłem się na szukanie czegoś innego. Na wątkach też niestety się nie znam, w sieci znalazłem jakieś strzępy kodu, ale ciężko mi to poskładać w całość, tak żeby chciało działać. Może jakieś sugestie w tym kierunku?
    Najchętniej użyłbym właśnie timera, ale - jest taki komponent w Visual'u, MFC?! To się jakoś realizuje może sprytnie?

    0