Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Picture Control

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.02.2005, 09:03 Uhr
Sapphira



Hallo,

wie kann ich ein BMP Bild, dass ich mit LoadBitmap geladen habe in einem PictureControl anzeigen lassen.

Ich habe das Bild folgendermaßen geladen:


Code:
HBITMAP m_hBmpNew;
CString    file;
file = "C:\\Testbild.bmp";
if(m_hBmpNew != NULL )
    DeleteObject(m_hBmpNew);        //Entfernt vorhandenes Objekt
m_hBmpNew =     (HBITMAP) LoadImage(AfxGetInstanceHandle(),   // handle to instance
         file,  // name or identifier of the image (root is where project is)
         IMAGE_BITMAP,        // image types
         0,     // desired width
         0,     // desired height
        LR_LOADFROMFILE);


was muss ich nun weiter machen, um das Bild anzeigen zu lassen?

Danke
Sapphira

Dieser Post wurde am 21.02.2005 um 09:04 Uhr von Sapphira editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.02.2005, 10:24 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
CString szFilename="myPic.bmp";
HBITMAP hBmp = (HBITMAP)::LoadImage(NULL,szFilename, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);

    CBitmap pic;
    pic.Attach(hBmp);

    BITMAP bild_header;
    pic.GetBitmap(&bild_header);

    CWnd* wp = GetDlgItem(IDC_STATIC_BITMAP...);
    CDC *pDC = wp->GetDC();
    CDC imageDC;
    imageDC.CreateCompatibleDC(pDC);
    imageDC.SelectObject( &pic);

    int offsetx=0,offsety=0;  //oder wo auch immer die linke obere ecke hin soll
    pDC->BitBlt(offsetx, offsety, bild_header.bmWidth, bild_header.bmHeight, &imageDC, 0,
0, SRCCOPY);
        
    imageDC.DeleteDC();
    wp->ReleaseDC(pDC);



--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.02.2005, 10:57 Uhr
Sapphira



So weit, so gut.
Und wie kann ich nun das Bild verkleiner, so dass es in IDC_STATIC hinein passt?

Habs mit StretchBlt versucht, aber das Bild wird nicht verkleinert?

Code:
CRect pRect;
wp->GetClientRect(pRect);

pDC->StretchBlt(pRect.left, pRect.top, pRect.Width(), pRect.Height(), pDC, 0, 0,
                       bild_header.bmWidth, bild_header.bmHeight, SRCCOPY);

int offsetx=0,offsety=0;  //oder wo auch immer die linke obere ecke hin soll
pDC->BitBlt(offsetx, offsety, bild_header.bmWidth, bild_header.bmHeight, &imageDC, 0,
                 0, SRCCOPY);


Dieser Post wurde am 21.02.2005 um 10:57 Uhr von Sapphira editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.02.2005, 12:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ungetestet so

C++:
CRect pRect;
CBitmap pic;
CString szFilename;
BITMAP bild_header;
CWnd* wp;
CDC imageDC;
CDC *pDC;
int offsetx,offsety;
    
szFilename="myPic.bmp";
offsetx=offsety=10;

HBITMAP hBmp = (HBITMAP)::LoadImage(NULL,szFilename, IMAGE_BITMAP, 0, 0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);

pic.Attach(hBmp);
pic.GetBitmap(&bild_header);

wp = GetDlgItem(IDC_STATIC_BITMAP);
pDC = wp->GetDC();
imageDC.CreateCompatibleDC(pDC);
imageDC.SelectObject( &pic);
    
wp->GetClientRect(pRect);
    
pDC->StretchBlt(offsetx,offsety,pRect.Width()-2*offsetx,pRect.Height()-2*offsety,&imageDC,0,0,bild_header.bmWidth,bild_header.bmHeight,SRCCOPY);
imageDC.DeleteDC();
wp->ReleaseDC(pDC);


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: