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

[Winapi] Pojawienie się bitmapy jeżeli dany warunek zostanie spełniony

Ostatnio zmodyfikowano 2011-10-17 15:15
Autor Wiadomość
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-13 14:31:46
To jest kod odpowiedzialny za zmianę z false na true:
if(( HWND ) lParam == g_hstart ){
     MessageBox( hwnd, "Nacisnąłeś start!", "Ha!", MB_ICONINFORMATION );
     gra (1);

To jest ta funkcja:
C/C++
int gra( int gramenu ) {
   
   
   
    if( gramenu == 1 ) {
       
       
       
       
        g_hgracc = true;
       
       
        bool z0 = true;
       
       
        bool z2 = false;
        bool z3 = false;
        bool z4 = false;
        bool z5 = false;
       
       
        while( z0 == true ) {
           
            z0 = false;
           
           
        }
       
       
       
       
       
       
       
    }
   
    return g_hgracc;
}

Chodzi mi o to żeby po naciśnięciu na przycisk "rozpocznij gre" pojawiała się ta bitmapa.
P-42024
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-14 10:53:49
Skoro nikt na to pytanie nikt nie potrafi odpowiedzieć (pisałem ten temat na 5 forach), to teraz inne pytanie, czy da się połączyć i w jaki sposób WinApi i Allegro?
P-42070
DejaVu
» 2011-10-14 10:59:10
To nie jest kwestia tego, że nikt na żadnym forum nie potrafi Ci rozwiązać problemu, tylko Ty chcesz aby problem za Ciebie został rozwiązany pomimo iż Ci wskazałem co należy zrobić ale najwyraźniej się do tego zastosować nie potrafisz.

PS. 1 temat = 1 problem
P-42071
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-14 11:40:57
Tylko gdybym potrafił samemu to rozwiązać nie pisałbym o tym na forum.
Piszesz żebym zapewnił kod po zmianie wartości,ale jak to zrobić?
Przecież WM_PAINT wykonuje się po zmianie tej wartości to czemu bitmapa się nie wyświetla jeżeli dam w if'a:
BitBlt(hdc,100,200,info_bitmapy.bmWidth,info_bitmapy.bmHeight,hdcBitmapy,0,0,SRCCOPY);
P-42077
DejaVu
» 2011-10-14 12:57:34
Jakby się wykonywał WM_PAINT po zmianie wartości to by się wyświetliło co innego na ekranie.

» WinAPIInvalidateRect
P-42080
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-14 13:56:01
Teraz mam trzy pytania.
1. Gdzie wstawić to InvalidateRect ? Próbowałem w WM_PAINT i tam gdzie jest obsługa przycisku i nie działa.
2. Czy przykład który jest u was podany to tylko przykład, który trzeba zmodyfikować nawet jeżeli okienko to kod z tej samej strony?
3. Jeżeli WM_PAINT się nie wykonuje po zmianie wartości to czemu linia się rysuje po naciśnięciu przycisku?
 
P-42084
xevuel
» 2011-10-14 15:03:58
InvalidateRect, można powiedzieć, wysyła WM_PAINT do procedury komunikatów.
Poza tym, co to za problem stworzyć takiego if-a?
C/C++
bool warunek = false;
Warunek powinien być zadeklarowany globalnie, jeśli musisz się do niego odwoływać z kilku funkcji.
C/C++
if( warunek == true )
     BitBlt();

a w osobnej funkcji tylko zmieniasz wartość warunku po naciśnięciu przycisku...
C/C++
if( nacisnieto_przycisk )
     warunek = true;

P-42089
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-14 15:14:36
Tym warunkiem jest g_hgracc, jego wartość jest zmieniana, linia po zmianie wartości się rysuje a bitmapa nie.
P-42090
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona