Code Beispiel: Bitmap aus Resource file laden



  • Hat jemand ein kleines Beispie/Code wie man ein Bitmap aus der Resource Datei lade und dann im fenster Darstelle??

    Danke im vorraus für euere Bemühungen



  • - leg eine CBitmap Membervariable an (CBitmap m_bitmap;)
    - lade ein Bitmap aus der Ressource (z.B. in OnInitDialog)

    m_bitmap.LoadBitmap( IDB_BITMAP1 );
    

    - temporäres DC erstellen, Bild selektieren und zeichnen (z.B. in OnPaint)

    CPaintDC dc(this);
    CDC memDC;
    memDC.CreateCompatibleDC( &dc );
    CBitmap* pBmpOld = memDC.SelectObject( &m_bitmap );
    BITMAP bm;
    GetObject( m_bitmap, sizeof( bm ), &bm );
    dc.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY );
    memDC.SelectObject( pBmpOld );
    


  • ohh dasd ging schnell .. danke..

    gibt es jetzt noch en möglich keit das Bitmap in der größe zu verziehen?



  • BorisDieKlinge schrieb:

    ohh dasd ging schnell .. danke..

    gibt es jetzt noch en möglich keit das Bitmap in der größe zu verziehen?

    ja gibt es. Statt BitBlt nimmst Du StretchBlt. Das hat 2 Parameter mehr für die Größe und Breite, in der das Bild dargestellt werden soll.



  • ohh.. danke für die hilfe...
    aber nun hab ich noch ne frage?:)

    wenn ich nun CDC *p; DC erstelle, und in dem von mir aus ne Linie zeiche, kann ich diese DC doch auf den aktuellen fesnter DC blasen "BitBlt" oder?? das hab ich mal so versucht:

    CPen CMyPen;
    
    	CDC *p = new CDC();
    	p->CreateCompatibleDC(&dc);
    
    	LOGBRUSH logBrush;
    	logBrush.lbStyle = BS_SOLID;
    	logBrush.lbColor = RGB(0,255,255);
    	CMyPen.CreatePen(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);
    
    	p->MoveTo(10,10);
        // Roten Stift fuer erste Linie auswaehlen
        CPen *pCOrgPen = dc.SelectObject(&CMyPen);
        // Erste Linie zeichnen
        p->LineTo(100,100);
    	dc.BitBlt(0,0,100,100,p,0,0,SRCCOPY);
    

    allerdingwir nichts im fenster gezeichne?? denke mal ich muss von dem DCD beim erstellen nich die größe oder so angeben odr??

    grüße



  • ich hab ein Dejavu :p
    wenn Du ein DC neu erstellst, dann hat der ein Bitmap in der Größe von 1x1 Pixel. Du musst also auch ein entsprechendes Bitmap erstellen oder laden, auf dem Du zeichnen kannst. Das kannst Du dann auf Dein Fenster blitten 🙂


Anmelden zum Antworten