haker13579 Temat założony przez niniejszego użytkownika |
Problemy z odczytywaniem, który przycisk jest naciśnięty w WinApi. » 2015-07-28 20:27:12 Tutaj na portalu w kursie z WinApi jest napisany taki kod tworzący przycisk: g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "Nasz przycisk", WS_CHILD | WS_VISIBLE, 100, 100, 150, 30, hwnd, NULL, hInstance, NULL ); Ten kod jest wewnątrz funkcji WinMain. Na zewnątrz tej funkcji zdefiniowana jest zmienna: HWND g_hPrzycisk; I jest fragment kodu sprawdzający czy przycisk został naciśnięty: case WM_COMMAND: if(( HWND ) lParam == g_hPrzycisk ) MessageBox( hwnd, "Nacisnąłeś przycisk!", "Ha!", MB_ICONINFORMATION );
break; Przed tym switchem została zdefiniowana zmienna HWND lParam. Nie wiem jaki argument podać do switcha, żeby mi to działało. Napisałem taki kod: switch( g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "Nasz przycisk", WS_CHILD | WS_VISIBLE, 100, 100, 150, 30, hwnd, NULL, hInstance, NULL ) ) { case WM_COMMAND: HWND lParam; if(( HWND ) lParam == g_hPrzycisk ) MessageBox( hwnd, "Nacisnąłeś przycisk!", "Ha!", MB_ICONINFORMATION ); break; Kompilator zamiast mi go skompilować wypisuje tekst: [Error] switch quantity not an integer.
Stosuje kompilator DEV C++. |
|
pekfos |
» 2015-07-28 20:33:14 Co ty właściwie chcesz osiągnąć? W kursie powinien być działający przykład, a ty pomieszałeś ze sobą tyle rzeczy, że trzeba by się zastanowić, czy da się bardziej. |
|
haker13579 Temat założony przez niniejszego użytkownika |
» 2015-07-28 20:39:39 Chce by przycisk po naciśnięciu wyświetlał mi komunikat. |
|
pekfos |
» 2015-07-28 20:49:51 Podstawy WinAPITu masz działający przykład programu, dodaj tylko do niego kontrolkę, jej obsługę, zgodnie z lekcją o kontrolkach, i podaj kod, jaki ci wyjdzie. |
|
haker13579 Temat założony przez niniejszego użytkownika |
» 2015-07-28 21:16:00 Ale ja mam już okno windows. Chce wiedzieć jaki argument podać do switcha by mi ten sprawdził czy przycisk jest wciśnięty. |
|
pekfos |
» 2015-07-28 21:23:11 Masz w kursie działający przykład. Masz nic nie zmieniać w argumencie switch.. |
|
haker13579 Temat założony przez niniejszego użytkownika |
» 2015-07-28 21:28:40 Ten kod tworzy same okno windows. Lekcja o przyciskach jest w podroździale kontrolki. A tam nie ma podanego argumentu switcha tylko fragment (bez argumentu dla switcha): case WM_COMMAND: if(( HWND ) lParam == g_hPrzycisk ) MessageBox( hwnd, "Nacisnąłeś przycisk!", "Ha!", MB_ICONINFORMATION );
break; |
|
pekfos |
» 2015-07-28 21:32:15 Podany fragment to jedyne, co masz zmienić. Gdyby było coś więcej, to chyba byłoby o tym w kursie? |
|
« 1 » 2 |