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;
}