Witam.
Mam problem, przewaliłem sporą część internetu i nie mogę znaleźć odpowiedzi.
Mam projekt w bibliotece SDL, więc bez windowsowych bajerów, i chcę dodać ikonkę do projektu.
Jak to uczynić?
Witam.
Mam problem, przewaliłem sporą część internetu i nie mogę znaleźć odpowiedzi.
Mam projekt w bibliotece SDL, więc bez windowsowych bajerów, i chcę dodać ikonkę do projektu.
Jak to uczynić?
Nie znam SDL, ale tak najogólniej to robi się to przy rejestracji okna twojej aplikacji. Przykład z projektu wygenerowanego przez VS2010 Express:
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_CPPWINSANDBOX));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_CPPWINSANDBOX);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
Chodzi o hIcon i hIconSm:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633577%28v=vs.85%29.aspx
A jaki plik .h będzie do tego potrzebny?
Bo w sumie programy z SDL to tylko podstawowe biblioteki znane z konsoli + biblioteki sdl.
Do rejestracji okna - windows.h.
Oprócz tego - identyfikatory zasobów są zdefiniowane w resources.h, np.:
#define IDI_CPPWINSANDBOX 107
#define IDI_SMALL 108
Następnie mamy plik np. MyApplication.rc, który includuje resources.h i definiuje nasze ikony:
IDI_CPPWINSANDBOX ICON "CppWinSandbox.ico"
IDI_SMALL ICON "small.ico"
W pliku, gdzie rejestrujemy okno naszej aplikacji (np. MyApplication.cpp), includujemy resources.h i używamy wymienionych identyfikatorów przy rejestracji okna.