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

Problemy z odczytywaniem, który przycisk jest naciśnięty w WinApi.

Ostatnio zmodyfikowano 2015-08-20 23:33
Autor Wiadomość
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:
C/C++
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:
C/C++
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:
C/C++
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++.
P-135359
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.
P-135361
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.
P-135362
pekfos
» 2015-07-28 20:49:51
» Kurs WinAPI, C++ » PodstawyPodstawy WinAPI lekcja
Tu 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.
P-135363
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.
P-135365
pekfos
» 2015-07-28 21:23:11
Masz w kursie działający przykład. Masz nic nie zmieniać w argumencie switch..
P-135367
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;
P-135369
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?
P-135370
« 1 » 2
  Strona 1 z 2 Następna strona