Bitmap anzeigen



  • Wie kann man auf einem leeren CDialog-Feld, eine Bitmap anzeigen ?
    Ich habe folgendes versucht, es tat sich nichts:

    ...CMeinDialog::OnPaint( ...
    CPaintDC dc(this);
    CBitmap bitmap;
    CDC MemDC;
    bitmap.LoadBitmap(<Bildname>);
    MemDC.CreateCompatibleDC(&dc);
    MemDC.SelectObject(&bitmap);
    CRect rect;
    GetClientRect(&rect);
    dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &MemDC, 0, 0, 400, 300, SRCCOPY);

    Ausserdem wollte ich noch wissen, wie man eine Bitmap-Datei importiert.



  • Ich nochmals. Mit importieren meine ich das Hinzufügen einer Bitmap-Datei
    zum Projekt, so dass ich eine Bitmap ID bekomme. zB IDB_BITMAP1. Und keine
    Bitmap-Datei im Verzeichnis halten muss.



  • Da, wo du diesen Code-Schnipsel kopiert hast, stand doch mit Sicherheit eine Erklärung dabei. Also, erklär uns doch bitte mal was dieser Code tut...

    Mit importieren meine ich das Hinzufügen einer Bitmap-Datei
    zum Projekt, so dass ich eine Bitmap ID bekomme. zB IDB_BITMAP1. Und keine
    Bitmap-Datei im Verzeichnis halten muss.

    Also du willst eine Bitmap importieren und sie nicht in einem Verzeichnis haben?!



  • Importieren geht über "Ressourcen", da werden die ID's für Bilder, Icons, Texte usw vergeben



  • Der Code oben dient zur Anzeige einer Bitmap auf einem Fenster. Eine Möglich-
    keit ist, ein Picture-Control von der Klasse CStatic zu verwenden, das habe ich versucht allerdings ohne Erfolg:

    // Auf dem Dialog-Formular ist ein Picture-Control mit der ID: IDC_STATIC.
    CStatic* st = (CStatic*)GetDlgItem(IDC_STATIC);
    st->SetBitmap(Dateiname);



  • Um eine Bitmap in einer Pic Ctrl anzeigen zu lassen ist noch nicht eine einzige Zeile (selbst geschriebener) Code notwending. Du musst nur in den Einstellungen deiner Pic Ctrl "Type" auf "Bitmap" setzen und dann bei "Image" die ID deiner Bitmap eintragen die du vorher als Ressource hinzugefügt hast.



  • Ich habe mir ein kleines PGM geschrieben, das aus einer BMP-Datei den zugehörigen CODE generiert, den man als Konstanten-Definition in sein Programm einfügen kann.
    Hier ein Beispiel

    http://www.hkressedd.de/bilder/w7.bmp

    // Y:\w\w7.h
    const unsigned char xxxxxx [30054] =
     {
       0X42,0X4D,0X66,0X75,0X00,0X00,0X00,0X00,0X00,0X00,0X36,0X00,0X00,0X00,0X28,0X00, // 0000
       0X00,0X00,0X64,0X00,0X00,0X00,0X64,0X00,0X00,0X00,0X01,0X00,0X18,0X00,0X00,0X00, // 0010
       0X00,0X00,0X30,0X75,0X00,0X00,0X13,0X0B,0X00,0X00,0X13,0X0B,0X00,0X00,0X00,0X00, // 0020
       0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, // 0030
    
    ::: hier weiterer Code
    
       0XD8,0XDC,0XD2,0XD8,0XDB,0XD0,0XD8,0XD8,0XD1,0XD4,0XD0,0XCE,0XC6,0XD4,0XD5,0XCB, // 74F0
       0XDE,0XDA,0XD9,0XE5,0XE0,0XE2,0XEA,0XE2,0XED,0XF1,0XE8,0XF5,0XFB,0XF0,0XFF,0XFF, // 7500
       0XF7,0XFF,0XFF,0XFA,0XFF,0XFF,0XF9,0XFF,0XFF,0XFA,0XFB,0XFF,0XFE,0XFB,0XFF,0XFF, // 7510
       0XFB,0XFF,0XFF,0XF9,0XFF,0XFF,0XF8,0XFF,0XFF,0XFB,0XF8,0XFE,0XFF,0XF5,0XFE,0XFF, // 7520
       0XF9,0XFF,0XFE,0XFD,0XFF,0XFC,0XFF,0XFF,0XFC,0XFF,0XFD,0XFE,0XFF,0XFC,0XFF,0XFF, // 7530
       0XFC,0XFF,0XFF,0XFE,0XFF,0XFD,0XFF,0XFB,0XFD,0XFF,0XF5,0XFB,0XFF,0XF2,0XFD,0XFF, // 7540
       0XF8,0XFD,0XFF,0XFF,0XFF,0XFA,0XFF,0XFF,0XF9,0XFF,0XFF,0XFD,0XFF,0XFF,0XFF,0XFF, // 7550
       0XFF,0XFF,0XFF,0XFF,0XFF,0XFF                                                    // 7560
     };
    


  • ....
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFD,0XFF,0XFF,0XFD,0XFF,0XFF, // 0860
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFF,0XFF, // 0870
    0XFE,0XFF,0XFD,0XFF,0XFF,0XF8,0XFA,0XFA,0XFA,0XFF,0XFD,0XFD,0XFF,0XFC,0XFF,0XFF, // 0880
    0XFC,0XFF,0XFE,0XF9,0XFF,0XFD,0XF6,0XEA,0XDB,0XD2,0X7A,0X59,0X49,0X45,0X1A,0X07, // 0890
    0X57,0X2A,0X15,0X59,0X28,0X12,0X5B,0X25,0X0C,0X69,0X31,0X14,0X7E,0X42,0X24,0X9F, // 08A0
    0X60,0X3E,0X7A,0X36,0X11,0X78,0X33,0X0B,0X78,0X33,0X08,0X7B,0X34,0X08,0X7B,0X35, // 08B0
    0X06,0X7C,0X34,0X05,0X7C,0X34,0X05,0X7F,0X34,0X06,0X84,0X36,0X08,0X83,0X35,0X07, // 08C0
    0X80,0X33,0X05,0X80,0X33,0X05,0X80,0X35,0X07,0X81,0X39,0X0A,0X82,0X3C,0X0D,0X81, // 08D0
    0X3D,0X10,0X7D,0X3C,0X0F,0X76,0X37,0X0B,0X72,0X34,0X0B,0X72,0X35,0X0D,0X6E,0X33, // 08E0
    0X0C,0X6A,0X30,0X0C,0X70,0X36,0X12,0X75,0X3F,0X1C,0X68,0X35,0X14,0X6E,0X3F,0X1F, // 08F0
    0X7F,0X50,0X31,0X91,0X65,0X48,0XA9,0X81,0X65,0XCA,0XA5,0X8B,0XE9,0XC9,0XB2,0XFD, // 0900
    0XE2,0XCD,0XFF,0XFD,0XEB,0XFF,0XFF,0XF0,0XFF,0XFF,0XF4,0XFF,0XFF,0XF7,0XFF,0XFF, // 0910
    0XF6,0XFF,0XFB,0XF4,0XFD,0XF9,0XF4,0XFC,0XF9,0XF5,0XFE,0XFB,0XF7,0XFB,0XF9,0XF8, // 0920
    0XFE,0XFC,0XFB,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFC,0XFD,0XFB,0XFF,0XFD,0XFD,0XFF, // 0930
    0XFF,0XFF,0XFF,0XFE,0XFF,0XFD,0XFF,0XFF,0XFF,0XFE,0XFF,0XFD,0XFF,0XFF,0XFC,0XFD, // 0940
    0XFF,0XFC,0XFD,0XFF,0XFD,0XFE,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFF, // 0950
    0XFA,0XFF,0XFF,0XF6,0XFF,0XFF,0XF6,0XFF,0XFF,0XFA,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF, // 0960
    0XFE,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFF,0XF8,0XFF,0XFF,0XF4,0XFF,0XFF,0XF4,0XFF, // 0970
    0XFE,0XF8,0XFF,0XFE,0XFF,0XFF,0XFC,0XFF,0XFF,0XFC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, // 0980
    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XFF,0XFF,0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, // 0990
    0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFF,0XFF,0XFE,0XFF,0XFC,0XFE, // 09A0
    0XFE,0XFD,0XFF,0XFF,0XFC,0XFF,0XFD,0XFE,0XFF,0XFB,0XFE,0XFB,0XF7,0XFF,0XFF,0XFB, // 09B0
    ....

    also das kann nicht stimmen



  • deejey schrieb:

    Importieren geht über "Ressourcen", da werden die ID's für Bilder, Icons, Texte usw vergeben

    Danach fügst du ein PictureContol ein und setzt ID und Image auf die oben importierte ID und Type auf Bitmap.
    Das sollte es gewesen sein und es wird angezeigt.

    Vergessen:
    Die Bitmap plazierst du einfach in \res



  • Kann man für CDialog auch Hintergrundbilder hinzufügen ? Wenn Ja wie ?



  • Schon mal was von google gehört?!



  • MFC-User schrieb:

    Kann man für CDialog auch Hintergrundbilder hinzufügen ? Wenn Ja wie ?

    Die Frage zeigt mir, daß du es nichtmal ausprobiert hast.



  • Ihr habt ja recht, Beim Google habe ich doch noch was gefunden.
    Trotzdem sollte der Umgangston etwas besser sein ...



  • MFC-User schrieb:

    Trotzdem sollte der Umgangston etwas besser sein ...

    Was war denn daran unfreundlich?
    Sei dankbar, sonst spielen wir hier nächtesmal nicht die neueste Kuschelrock-CD für dich.
    Du hast Hilfe bekommen, oder nicht?



  • Jaja ist ja OK(). Bei Google habe ich folgendes gefunden. Nun bin ich kein
    Spezialist für Links-Hinzufügen in diesem Text ( Man könnte mir das mal zeigen )
    Also Google, Suchbegriff: "CDialog Hintergrundbild" Dann auf ... Wer weis was ..
    Da steht ein funktionierender Text. Danke ...


Log in to reply