Code::Blocks + wyświetlanie polskich znaków = problem

0

Witam! Kiedy chcę w Code::Blocks napisać program, który wyświetla polskie znaki, to po skompilowaniu i uruchomieniu zamiast polskich znaków wyświetla 'krzaczki'.
Dla odmiany w Dev-C++ wszystko jest dobrze.

Kiedyś znalazłem w internecie problem, że Visual C++ nie wyświetla polskich znaków, ale został rozwiązany, zmieniając w opcjach stronę kodową(czy jakoś tak).
Czy w Code::Blocks też tak można?

Oto zdjęcie mojego problemu:

http://zapodaj.net/b89a4de86868.png.html

A oto kod, który kompilowałem na dwóch IDE(Dev-C++ i Code::Blocks):

 
#include <windows.h>

LPSTR NazwaKlasy = "Klasa Okienka";
MSG Komunikat;
HWND g_hPrzycisk;

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    // WYPE£NIANIE STRUKTURY
    WNDCLASSEX wc;

    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = 0;
    wc.lpfnWndProc = WndProc;                       //obsługa zdarzeń
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;                       //uchwyt aplikacji
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground =(HBRUSH)(COLOR_WINDOW);   //kolor tła
    wc.lpszMenuName = NULL;
    wc.lpszClassName = NazwaKlasy;                  //nazwa klasy
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

    // REJESTROWANIE KLASY OKNA
    RegisterClassEx(&wc);

    // TWORZENIE OKNA
    HWND hwnd = CreateWindowEx( WS_EX_CLIENTEDGE,   //Dodatkowe style (tu trójwymiarowa ramka)
                           NazwaKlasy,              //Nazwa klasy, do której należy okno
                           "Oto okienko",           //Napis na pasku tytułowym
                           WS_OVERLAPPEDWINDOW,     //Style okna
                           100,                     //Położenie okna - od lewego boku
                           100,                     //Położenie okna - od górnego boku
                           300,                     //Wymiar okna - szerokość
                           200,                     //Wymiar okna - wysokość
                           NULL,
                           NULL,
                           hInstance,               //Uchwyt aplikacji, do której należy okno
                           NULL
                           );

    g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "Code::Blocks śćź", WS_CHILD | WS_VISIBLE,
                                  10, 10, 170, 30, hwnd, NULL, hInstance, NULL );

    ShowWindow( hwnd, nCmdShow ); // Pokaż okienko...
    UpdateWindow( hwnd );

    // Pętla komunikatów
    while( GetMessage( & Komunikat, NULL, 0, 0 ) )
    {
        TranslateMessage( & Komunikat );
        DispatchMessage( & Komunikat );
    }
    return Komunikat.wParam;
}

//---------------------------------------------------------------------------------------------------------------------------------------

// OBS£UGA ZDARZEŃ
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
    case WM_COMMAND:
        MessageBox(hwnd, "Nacisnąłeś przycisk! śćź", "Ha!", MB_ICONINFORMATION);
        break;

    case WM_CLOSE:
        DestroyWindow( hwnd );
        break;

    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;

        default:
        return DefWindowProc( hwnd, msg, wParam, lParam );
    }

    return 0;
}
0

Czy w Code::Blocks też tak można?
Nie wiem, zapewne, poszukaj.
Ze screenshota wynika, że w codeblocks zapisujesz plik jako UTF-8, a powinieneś CP-1250.

0
// OBS£UGA ZDARZEŃ
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
    case WM_COMMAND:
        MessageBox(hwnd, "Nacisnąłeś przycisk! śćź", "Ha!", MB_ICONINFORMATION);
        break;
 
    case WM_CLOSE:
        DestroyWindow( hwnd );
        break;
 
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
 
        default:
        return DefWindowProc( hwnd, msg, wParam, lParam );
    }
 
    return 0;
}
 // OBS£UGA ZDARZEŃ
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 );

  **  case WM_COMMAND:
        MessageBox(hwnd, "Nacisnąłeś przycisk! śćź", "Ha!", MB_ICONINFORMATION);
        break;**
    }
 
    return 0;
}

na pewno tu jest błąd

1 użytkowników online, w tym zalogowanych: 0, gości: 1