Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

WINAPI - wyświetlenie .png w dialog boxie

Ostatnio zmodyfikowano 2012-06-03 12:10
Autor Wiadomość
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:
C/C++
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;
}
P-57728
xevuel
» 2012-06-03 11:53:44
libpng

Za pomocą LoadImage nie załadujesz pliku png.
P-57729
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
P-57731
« 1 »
  Strona 1 z 1