JPG-Bilder in Dialog anzeigen



  • ja, das hab ich auch erst gedacht, funktioniert aber trotzdem nicht.

    der fehler liegt in der zeile:

    m_Picture.ShowBitmapResource(&dc, IDC_BMP, CPoint(0,0));
    

    übrigens das hier funktioniert:

    CPicture m_Picture;
    m_Picture.Load("C:\Test.JPG");
    
    CString S;
    S.Format("Size = %4d\nWidth = %4d\nHeight = %4d\nWeight = %4d\n", m_Picture.m_Weight, m_Picture.m_Width, m_Picture.m_Height, m_Picture.m_Weight);
    AfxMessageBox(S);
    


  • habs auch schon damit probiert:

    CDC* pDC;
    
    m_Picture.UpdateSizeOnDC(pDC);
    m_Picture.Show(pDC, CPoint(0,0), CPoint(m_Picture.m_Width, m_Picture.m_Height), 0,0);
    m_Picture.Show(pDC, CRect(0,0,100,100));
    m_Picture.ShowBitmapResource(pDC, IDC_BMP, CPoint(0,0));
    

    denn es handelt sich hier um eine SDI, das bild soll jedoch auf einem dialog (seite eines TabCtrl) in einem bestimmten Picture Steuerelement zum Bearbeiten geöffnet werden.

    hat jemand eine idee???
    bin für alle tips dankbar.

    mfg thinux



  • Ich arbeite momentan mit der freien Bibliothek "DevIL". Kannst dir die ja auch mal anschauen



  • IDC_BMP = die ID von dem Picture Steuerelement, dass ich auf meinen dialog gezeichnet habe, das ist doch richtig so, oder?

    Nein... wer lesen kann ist klar im Vorteil 😃

    m_Picture.Load(IDR_TEST, "JPG"); // Load From a Resource - Just Load It (Show Later)
    You Must Include IDR_TEST In Your Resources Under a Custom Name, 4 Example - "JPG"

    Heißt soviel wie: "Du sollst das Bild als Resource Importieren...

    evt. Reicht es, wenn de

    m_Picture.ShowBitmapResource(&dc, IDC_BMP, CPoint(0,0));
    

    weg lässt



  • ...sicher! wer lesen kann... (wer alles lesen kann!)
    --> da gibts auch noch ne 2.zeile

    hab das so versanden:

    entweder:

    m_Picture.Load("Test.JPG"); // Load From a File - Just Load It (Show Later)
    

    zum laden einer datei

    oder:

    m_Picture.Load(IDR_TEST, "JPG"); // Load From a Resource - Just Load It (Show Later)
    //  (U Must Include IDR_TEST In Your Resources Under a Custom Name, 4 Example - "JPG")
    

    zum laden einer resource

    ich möchte aber eine jpg-file direkt anzeigen und bearbeiten ohne über die resourcen gehen zu müssen

    oder wie siehst du das???

    gruß thinux

    (ps. vielen dank für den tip mit "devil", werd mir das bei gelegenheit mal reinziehen)



  • edit: sry war falsch hier^^



  • gibts hier denn wirklich niemand, der weiß wie man ein JPG-Bild in einem Dialog anzeigen und bearbeiten kann ???

    soo helft mir doch, bitte!! 😞

    mfg thinux



  • hmm.. also

    CPicture m_Picture; 
    m_Picture.Load("C:\Test.JPG"); 
    
    CDC* pDC; // Hmm, jetzt hast de nen Pointer auf nen Device Context, der ins nirvaner zeigt... musste schon auf was zeigen lassen(achtung! musst de selber machen! habs so gelassen!
    
    m_Picture.UpdateSizeOnDC(pDC);
    m_Picture.Show(pDC, CPoint(0,0), CPoint(m_Picture.m_Width, m_Picture.m_Height), 0,0);
    m_Picture.Show(pDC, CRect(0,0,100,100));
    

    Wenn de den Pointer net ins nirvaner Zeigen lässt, sollte es funzen... und pack das ganze in die OnPaint() (hat ein Dlg sowas, oder hieß das da anders?!), da bekommst de direkt nen Device Context Pointer überliefert...



  • erstmal vielen dank für deine hilfe.

    so weit, so gut:

    CPicture m_Picture; 
    m_Picture.Load("C:\Test.JPG"); 
    
    CDC* pDC = GetDC(); //oder --> CClientDC dc(this);
    
    m_Picture.UpdateSizeOnDC(pDC);
    m_Picture.Show(pDC, CPoint(0,0), CPoint(m_Picture.m_Width, m_Picture.m_Height), 0,0);
    

    das klappt auch wunderbar.

    --> aber wie muss ich das mit dem DC machen wenn ich will, dass das Bild in einem Rahmen (Picture Steuerelement) angezeigt wird?

    zum beispiel: mein Steuerelement heißt "IDB_BMP"

    mfg & bestem dank
    thinux



  • ok, ich habs! hier noch mal für alle die auch mal vor dem Prob. stehn:

    CPicture m_Picture; 
    m_Picture.Load("C:\Test.JPG"); 
    
    CDC* pDC = m_cPic.GetDC(); //m_cPic => ID vom Picture Steuerelement
    
    m_Picture.UpdateSizeOnDC(pDC);
    m_Picture.Show(pDC, CPoint(0,0), CPoint(m_Picture.m_Width, m_Picture.m_Height), 0,0);
    

Anmelden zum Antworten