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

[C++,WinApi] Problem z reagowaniem na naciśnięcie przycisków.

Ostatnio zmodyfikowano 2010-09-05 14:18
Autor Wiadomość
Mateusz124
Temat założony przez niniejszego użytkownika
[C++,WinApi] Problem z reagowaniem na naciśnięcie przycisków.
» 2010-09-05 11:22:15
Witam,
Od niedawna uczę się WinApi i mam pierwszy problem. W drugiej lekcji Win Api na tej stronie jest napisane jak odczytywać naciśnięcia przycisków. Kawałek kodu odpowiedzialny za to to:

C/C++
case WM_COMMAND:
if(( HWND ) lParam == g_hPrzycisk )
     MessageBox( hwnd, "Nacisnąłeś przycisk!", "Ha!", MB_ICONINFORMATION );

break;

Ae kiedy kompiluję program kompilator wyświetla mi błąd:
"IParam undeclared(first use this function)".

W lekcji 2 pod tym kodem napisane jest
Po pierwsze, jeśli mamy porównywać wartość  lParam z uchwytem okna (czyli kontrolki), to należy lParam przekonwertować do  HWND, inaczej kompilator się zdenerwuje.
Niestety nie wiem jak przekonwertować Iparam do HWND.
Bardzo proszę o pomoc.
P-21748
kamillo121
» 2010-09-05 11:26:55
A ten kawałek kodu, który nam podałeś oczywiście znajduje się w ciele funkcji

C/C++
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
    case WM_CLOSE:
        DestroyWindow( hwnd );
        break;
       
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
       
        default:
        return DefWindowProc( hwnd, msg, wParam, lParam );
    }
   
    return 0;
}
? błąd mówi że nie ma zadeklarowanego IParam
P-21749
Mateusz124
Temat założony przez niniejszego użytkownika
» 2010-09-05 11:29:20
Tak,
ten fragment kodu znajduje się w ciele funkcji sparwadzącej komunikaty, tej co podałeś. Wiem co oznacza ten bład nie wiemtylko jak przekonwertować IParem do HWND.
P-21750
kamillo121
» 2010-09-05 11:33:10
Tak jak jest podane w przykładzie
C/C++
case WM_COMMAND:
if(( HWND ) lParam == g_hPrzycisk ) ///<---tutaj to robisz
     MessageBox( hwnd, "Nacisnąłeś przycisk!", "Ha!", MB_ICONINFORMATION );

break;

Ale powracając do błędu, zauważyłem, że błędzie pisze IParam, zerknij czy gdzieś nie napisałeś IParam zamiast lParam
Ae kiedy kompiluję program kompilator wyświetla mi błąd:
"IParam undeclared(first use this function)".
P-21751
lenrokskate
» 2010-09-05 11:51:35
czasami w niektórych przykładach zamiast lParam może być lPar, przyjrzyj się dobrze i wstaw cały kod
P-21754
DejaVu
» 2010-09-05 14:07:18
To lest małe L, a nie duże i :) Błąd mówi tyle: zmienna niezadeklarowana (a nie jest zadeklarowana, bo wpisałeś inną nazwę zmiennej niż w kursie).
P-21758
pekfos
» 2010-09-05 14:12:21
niech po prostu skopiuje nazwę z listy argumentów.
P-21760
Mateusz124
Temat założony przez niniejszego użytkownika
» 2010-09-05 14:18:19
Dzięki lenrokskate, to prawda w innych  miejscach zamiast lParam było lPar. Proszę o zamknięcie tematu.
P-21762
« 1 »
  Strona 1 z 1