Ivian Temat założony przez niniejszego użytkownika |
Allegro GUI » 2010-01-16 12:21:08 Mam problem z gui. Otóż utworzyłem menu na procedurach d_icon_proc ( z uwagi na bitmapowe przyciski ) Wygląda ono tak: DIALOG menu[] =
{ { d_clear_proc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }, { d_box_proc, 270, 192, 260, 256, 0, 0, 0, 0, 0, 0, NULL }, { d_icon_proc, 273, 200, 256, 64, 0, 0, 0, D_EXIT, 0, 0, NULL }, { d_icon_proc, 273, 264, 256, 64, 0, 0, 0, D_DISABLED, 0, 0, NULL }, { d_icon_proc, 273, 328, 256, 64, 0, 0, 0, 0, 0, 0, NULL }, };
menu[ 1 ].fg = makecol( 220, 190, 12 ); for( int i = 2; i < 5; i++ ) { menu[ i ].dp = przycisk[ i - 2 ][ 0 ]; menu[ i ].dp2 = przycisk[ i - 2 ][ 2 ]; menu[ i ].dp3 = przycisk[ i - 2 ][ 1 ]; } do_dialog( menu, - 1 );
Flaga na przycisku menu[1] jest ustawiona by zamykało okno dialogowe i przechodziło do wykonywania pętli gry. Moje pytanie jest jak ustawić flagę na przycisku menu[3] by kończyło pracę z programem? |
|
eBbi |
» 2010-01-16 12:42:28 |
|
Ivian Temat założony przez niniejszego użytkownika |
» 2010-01-16 12:48:31 Rozumiem że : int quit( void ) { if( alert( "Naprawdę chcesz wyjść ?", NULL, NULL, "&Tak", "&Nie", 't', 'n' ) == 1 ) return D_CLOSE; else return D_O_K; } Po naciśnięciu tak zwraca D_O_K tak? Więc jak to wykorzystać żeby ominęło pętle i przeskoczyło do końca programu? |
|
pixelmaster |
» 2010-01-16 13:03:52 Po naciśnięciu "tak" zwróci D_CLOSE, ale to chyba nie zamknie programu tylko okno dialogowe |
|
Ivian Temat założony przez niniejszego użytkownika |
» 2010-01-16 21:34:28 no właśnie... a np. jakaś wartość? próbowałem jako flagę ustwaic (return a=1) a potem np: if( !a ) { } return 0; } END_OF_MAIN() Ale zawsze zwracało a=1 i nie zamykało dialogu. edit: Tak mnie natchnęło... Jak sprawdzić czy dana flaga jest ustawiona? (przycisk jest wciśnięty?); |
|
pixelmaster |
» 2010-01-17 10:39:13 Może coś takiego zadziała ? int quit( void ) { if( alert( "Naprawdę chcesz wyjść ?", NULL, NULL, "&Tak", "&Nie", 't', 'n' ) == 1 ) allegro_exit(); else return D_O_K; } |
|
Ivian Temat założony przez niniejszego użytkownika |
» 2010-01-17 11:33:50 i co wtedy np.?
if(!D_O_K) { //pętla? }
|
|
pixelmaster |
» 2010-01-17 12:48:57 nie, wtedy swoim przyciskiem, którym chcesz zamykać aplikację po prostu to wywołujesz |
|
« 1 » 2 |