Używam programu Visual Studio 2008, plik PNG jest ładowany w widoku zasobów, przypisano mu IDB_BANG_PNG.Programowe ustawianie pliku PNG na przetwarzanie obrazu w interfejsach API Win32
Kontrola obrazu nazywa się IDC_STATIC15.
Mam problemy z próbą załadowania PNG do sterowania obrazem.
LRESULT CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
// Way of loading a bmp with a mask perhaps? Or a PNG file programatically?
static HBRUSH hBrushStatic;
HBITMAP hBmp = LoadBitmap(hDlg,MAKEINTRESOURCE(IDB_BANG_PNG));
switch(message)
{
case WM_INITDIALOG:
CheckDlgButton(hDlg, IDC_CHECK, FALSE);
EnableWindow(GetDlgItem(hDlg, IDOK), FALSE);
// Bitmap version is IDB_BANG, PNG is at IDB_BANG_PNG
// IDC_STATIC15 is the picture frame
HWND item = GetDlgItem(hDlg,IDC_STATIC15);
SendMessage(item,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBmp);
return TRUE;
// .... snip
Jestem raczej naiwny, jeśli chodzi o programowanie Win32/GUI, robiąc szybki projekt i utknąłem, każda pomoc jest doceniana.
Potrzebujesz pliku bitmapowego. Chcesz przekonwertować obraz PNG na obraz BMP. – anno
Przeczytałem, że można obsługiwać PNG, ale trzeba to zrobić programowo. Gdy dodam obrazy, używając filtru obrazu hte, * .png jest jednym z wymienionych elementów. –
Problem polega na tym, że chcę zachować przezroczyste tło, dlatego chcę używać formatu PNG. O ile nie mogę utworzyć maski przy użyciu BMP lub zezwolić, aby plik ICO korzystał z ikony o większym rozmiarze, a nie 32x32. –