Dialog - JPG,GIF in Dialog anzeigen (die lösung)



  • Hi,
    Hab mal ne bisschen herrumexperimentiert und hier ist meine Lösung:

    Header:

    #include "afxctl.h"
    .
    .
    .
    IPicture *m_bild;
    void DrawBild(IPicture *bild);
    

    cpp:

    void CMyClass::DrawBild(IPicture *bild)
    {
       CClientDC dc(this);
    
       CRect rc;
       GetClientRect(&rc);
    
       OLE_XSIZE_HIMETRIC width;
       OLE_YSIZE_HIMETRIC height;
    
       bild->get_Width(&width);
       bild->get_Height(&height);
    
       bild->Render(dc, x, y, size_x, size_y, 0, height, width, -height, &rc);
    }
    

    So die funktion solltet Ihr etwas Zeitverzögert starten !
    Damit das Bild in der Variable gespeichert wird einfach folgendes machen:

    OleLoadPicturePath(L"Pfad_zur_Datei", 0, 0, 0, IID_IPicture,(void **)&m_bild);
    

    --------------

    Übrigens das klappt auch mit gif/jpg Dateien die auf einem Server liegen !

    Nicht vergessen das es nur klappt mit MFC !

    Bye !
    Razy

    [ Dieser Beitrag wurde am 20.07.2002 um 22:59 Uhr von dEUs editiert. ]



  • Ist noch nicht ganz FAQ-würdig 🙂

    1.) Beim Posten bitte Code-Tags verwenden.
    2.) was ist x, y, size_x, size_y ?
    3.) In was für ner Einheit bigt get_Width bzw get_Height die Grössen zurück? In Pixel sicher nicht!
    4.) Wie bekommt man die Grösse in Pixel ?



  • 1.) Beim Posten bitte Code-Tags verwenden.
    2.) was ist x, y, size_x, size_y ?
    3.) In was für ner Einheit bigt get_Width bzw get_Height die Grössen zurück? In Pixel sicher nicht!
    4.) Wie bekommt man die Grösse in Pixel ?

    OK, fang ich mal an:

    1. Sorry,
    2.
    x,y= Startprosition von den Bildchen.
    size_x,size_y = Größe und Weite von den Bildchen.
    3.HIMETRIC (1xHIMETRIC = 0.01ml)
    4.96punkte=1zoll=2540 HIMETRIC

    int Pixel=(2540/96)*HIMETRIC
    

    (wobei HIMETRIC die jeweilige HIMETRIC größe ist...)



  • De Formel stimmt nicht. Sie muss so heissen:

    int nPixel = HIMETRIC*96/2540;
    

    So, jetzt kann man ihn in die FAQ packen 🙂



  • So, hier noch eine Ergänzung: http://www.c-plusplus.net/forum/viewtopic-var-t-is-167656.html
    Da findet man, wie man den Pfad auch auch einem CString rausholen kann und wie man den Speicher aufräumt. 👍


Anmelden zum Antworten