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

error: expected unqualified-id before "case"

Ostatnio zmodyfikowano 2011-03-31 16:24
Autor Wiadomość
Torel
Temat założony przez niniejszego użytkownika
error: expected unqualified-id before "case"
» 2011-03-31 00:09:45
Witam. Mam pewien problem z ktorym nie wiem jak sobie poradzic, problem dotyczy błędu:

error: expected unqualified-id before "case"

kod dotyczy aplikacji ktora otwiera okno a w oknie powinno sie wyswietlac tlo

C/C++
case WM_PAINT:
{
    HDC hdc;
    PAINTSTRUCT ps;
    hdc = BeginPaint( hwnd, & ps );
    HDC Okno;
    Okno = GetDC( hwnd );
    HBITMAP bitmap =( HBITMAP ) LoadImage( 0, "Bloody War.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
    HDC pomoc = CreateCompatibleDC( Okno );
    SelectObject( pomoc, bitmap )
    BitBlt( Okno, 10, 10, 300, 100, pomoc, 0, 0, SRCCOPY );
    DeleteDC( bitmap );
    DeleteObject( bitmap );
    ReleaseDC( hwnd, Okno );
    EndPaint( hwnd, & ps );
}
tak wyglada kod do obrazka

Zaznacze tylko ze dopiero zaczynam z C++ :)
P-30020
yoogi
» 2011-03-31 00:15:37
spróbuj zmienić switch'a na if'a
a wygląda to mniej więcej tak:
C/C++
if( msg == WM_PAINT )
{
    //code
}
osobiście sam tak piszę, miałem kiedyś problem z przypisaniem wartości zmiennym, a teraz wszystko działa jak trzeba.
P-30021
malan
» 2011-03-31 00:42:37
Błąd chyba nie dotyczy tego fragmentu kod. Pokaż cały
switch
.
P-30024
Torel
Temat założony przez niniejszego użytkownika
» 2011-03-31 11:21:24
Cały kod:

C/C++
#include <windows.h>


LRESULT CALLBACK WindowProcedure( HWND, UINT, WPARAM, LPARAM );


char szClassName[] = "Bloody War";

int WINAPI WinMain( HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nCmdShow )

{
    HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;
   
   
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof( WNDCLASSEX );
   
   
    wincl.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wincl.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
    wincl.hCursor = LoadCursor( NULL, IDC_ARROW );
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
   
    wincl.hbrBackground =( HBRUSH ) COLOR_BACKGROUND;
   
   
    if( !RegisterClassEx( & wincl ) )
         return 0;
   
   
    hwnd = CreateWindowEx(
    0,
    szClassName,
    "Bloody War",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    1024,
    768,
    HWND_DESKTOP,
    NULL,
    hThisInstance,
    NULL
    );
   
   
    ShowWindow( hwnd, nCmdShow );
   
   
    while( GetMessage( & messages, NULL, 0, 0 ) )
    {
       
        TranslateMessage( & messages );
       
        DispatchMessage( & messages );
    }
   
   
    return messages.wParam;
}




LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    switch( message )
    {
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
        default:
        return DefWindowProc( hwnd, message, wParam, lParam );
    }
   
    return 0;
}
case WM_PAINT:
{
    HDC hdc;
    PAINTSTRUCT ps;
    hdc = BeginPaint( hwnd, & ps );
    HDC Okno;
    Okno = GetDC( hwnd );
    HBITMAP bitmap =( HBITMAP ) LoadImage( 0, "Bloody War.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
    HDC pomoc = CreateCompatibleDC( Okno );
    SelectObject( pomoc, bitmap )
    BitBlt( Okno, 10, 10, 300, 100, pomoc, 0, 0, SRCCOPY );
    DeleteDC( bitmap );
    DeleteObject( bitmap );
    ReleaseDC( hwnd, Okno );
    EndPaint( hwnd, & ps );
}
P-30027
DejaVu
» 2011-03-31 11:32:59
case WM_PAINT jest poza switchem i poza funkcją.
P-30032
Torel
Temat założony przez niniejszego użytkownika
» 2011-03-31 15:52:33
A pomógł by mi ktoś poprawić ten kod ? ponieważ zajmuje się nim już równe 10 godz i mi mózg siada, bardzo bym o to prosił
P-30042
pekfos
» 2011-03-31 15:53:53
wstaw case na miejsce i tyle
P-30043
Dragonit
» 2011-03-31 16:01:25
C/C++
#include <windows.h>


LRESULT CALLBACK WindowProcedure( HWND, UINT, WPARAM, LPARAM );


char szClassName[] = "Bloody War";

int WINAPI WinMain( HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nCmdShow )

{
    HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;
   
   
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof( WNDCLASSEX );
   
   
    wincl.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wincl.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
    wincl.hCursor = LoadCursor( NULL, IDC_ARROW );
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
   
    wincl.hbrBackground =( HBRUSH ) COLOR_BACKGROUND;
   
   
    if( !RegisterClassEx( & wincl ) )
         return 0;
   
   
    hwnd = CreateWindowEx(
    0,
    szClassName,
    "Bloody War",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    1024,
    768,
    HWND_DESKTOP,
    NULL,
    hThisInstance,
    NULL
    );
   
   
    ShowWindow( hwnd, nCmdShow );
   
   
    while( GetMessage( & messages, NULL, 0, 0 ) )
    {
       
        TranslateMessage( & messages );
       
        DispatchMessage( & messages );
    }
   
   
    return messages.wParam;
}




LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    switch( message )
    {
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
        default:
        return DefWindowProc( hwnd, message, wParam, lParam );
       
    case WM_PAINT:
        {
            HDC hdc;
            PAINTSTRUCT ps;
            hdc = BeginPaint( hwnd, & ps );
            HDC Okno;
            Okno = GetDC( hwnd );
            HBITMAP bitmap =( HBITMAP ) LoadImage( 0, "Bloody War.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
            HDC pomoc = CreateCompatibleDC( Okno );
            SelectObject( pomoc, bitmap );
            BitBlt( Okno, 10, 10, 300, 100, pomoc, 0, 0, SRCCOPY );
            //DeleteDC( bitmap );
            DeleteObject( bitmap );
            ReleaseDC( hwnd, Okno );
            EndPaint( hwnd, & ps );
        }
    }
   
    return 0;
}
P-30045
« 1 » 2
  Strona 1 z 2 Następna strona