WINAPI - wyświetlenie .png w dialog boxie
Ostatnio zmodyfikowano 2012-06-03 12:10
Savail Temat założony przez niniejszego użytkownika |
WINAPI - wyświetlenie .png w dialog boxie » 2012-06-03 11:48:49 Hej, Da rade jakos w dialog boxie wyswietlic orazek .png? Chcialbym wyswietlic obrazek w ramce ktora stworzylem w pliku .rc (identyfikator - IDD_PREVIEW), ktora znajduje sie w dialog boxie, ale nigdzie nie moge znalezc rozwiazania ;/ Procedura okna dialogowego: BOOL CALLBACK OPEN_IMG_OBJ_Proc( HWND hdlg, UINT Msg, WPARAM wParam, LPARAM lParam ) { switch( Msg ) { case WM_PAINT: { PAINTSTRUCT ps; HWND hFrame = GetDlgItem( hdlg, IDD_PREVIEW ); HDC hdc = BeginPaint( hdlg, & ps ); HDC hDC = GetDC( hdlg ); HDC g_hDCMem = CreateCompatibleDC( hDC ); assert( g_hDCMem ); ReleaseDC( hdlg, hDC ); RECT rcFrame; GetWindowRect( hFrame, & rcFrame ); int w = rcFrame.right - rcFrame.left; int h = rcFrame.bottom - rcFrame.top; std::string path2 = "sprites/image.png"; BITMAP bm; HBITMAP g_hBitmap =( HBITMAP ) LoadImage( GetModuleHandle( NULL ), path2.c_str(), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ); GetObject( g_hBitmap, sizeof( BITMAP ), & bm ); ScreenToClient( hdlg,( LPPOINT ) & rcFrame ); ScreenToClient( hdlg,( LPPOINT ) & rcFrame.right ); HBITMAP hbmDefault = SelectBitmap( g_hDCMem, g_hBitmap ); StretchBlt( hdc, rcFrame.left, rcFrame.top, w, h, g_hDCMem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY ); SelectBitmap( g_hDCMem, hbmDefault ); EndPaint( hFrame, & ps ); } break; default: return FALSE; } return TRUE; } |
|
xevuel |
» 2012-06-03 11:53:44 libpngZa pomocą LoadImage nie załadujesz pliku png. |
|
Savail Temat założony przez niniejszego użytkownika |
» 2012-06-03 12:10:39 dzeki za odpowiedz. Sprobuje jeszcze pokombinowac, moze utworze inny uchwyt DirectX do dialog boxa zeby na nim rysowac za pomoca DirectX. Jak sie nie uda to chyba wyjscia nie ma i bede musial skorzystac z tego libpng ;p |
|
« 1 » |