Picture Klasse: Bild anzeigen in einem Picture Control oder Static Element



  • Hi

    bin momentan richtig am verzweifeln. Ich versuche seit 2 Wochen ein Bild in einem Picture Control oder Static Steuerelement anzuzeigen.

    1. Mir wurde nun mehrmals vorgeschlagen das eine Picture Klasse (siehe Anhang: Zip Datei)
    zu verwenden, welche mit denn gängigsten Bildformaten auskommt, zu benutzen.
    Ich habe eine Methode welche dies nun bewerkstelligen soll.

    void CKasseDlg::ShowItemPicture(CString index)
    {
        CPicture m_Picture;  // Create a Picture Object (An Instance Of This Class)
    
    //  Load Picture Data Into The IPicture Interface (.BMP .DIB .EMF .GIF .ICO .JPG .WMF)
    //  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    	m_Picture.Load("Test.JPG"); // Load From a File - Just Load It (Show Later)
    //  (U Must Include IDR_TEST In Your Resources Under a Custom Name, 4 Example - "JPG")
    
    //  OR When Using a Pointer On a "Regular" MFC Application (CDC* pDC)
    //  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    	CDC* pDC = new CClientDC(this);
    	m_Picture.UpdateSizeOnDC(pDC); // Get Picture Dimentions In Pixels
    	m_Picture.Show(pDC, CPoint(0,0), CPoint(m_Picture.m_Width, m_Picture.m_Height), 0,0);
    	m_Picture.ShowBitmapResource(pDC, IDB_TEST, CPoint(0,0)); // Show Bitmap Resource
    }
    

    Immer wennn ich jedoch versuche mein Projekt zu kompilieren bekomme ich eine Fehlermeldung:

    Kasse fatal error LNK1120: 5 unaufgeloeste externe Verweise
    Kasse error LNK2019: Nicht aufgeloestes externes Symbol "public: int __thiscall CPicture::UpdateSizeOnDC(class CDC *)" (?UpdateSizeOnDC@CPicture@@QAEHPAVCDC@@@Z), verwiesen in Funktion "public: void __thiscall CKasseDlg::ShowItemPicture(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (?ShowItemPicture@CKasseDlg@@QAEXV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
    Kasse error LNK2019: Nicht aufgeloestes externes Symbol "public: int __thiscall CPicture::ShowBitmapResource(class CDC *,int,class CPoint)" (?ShowBitmapResource@CPicture@@QAEHPAVCDC@@HVCPoint@@@Z), verwiesen in Funktion "public: void __thiscall CKasseDlg::ShowItemPicture(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (?ShowItemPicture@CKasseDlg@@QAEXV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
    Kasse error LNK2019: Nicht aufgeloestes externes Symbol "public: int __thiscall CPicture::Show(class CDC *,class CRect)" (?Show@CPicture@@QAEHPAVCDC@@VCRect@@@Z), verwiesen in Funktion "public: void __thiscall CKasseDlg::ShowItemPicture(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (?ShowItemPicture@CKasseDlg@@QAEXV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
    Kasse error LNK2019: Nicht aufgeloestes externes Symbol "public: int __thiscall CPicture::Show(class CDC *,class CPoint,class CPoint,int,int)" (?Show@CPicture@@QAEHPAVCDC@@VCPoint@@1HH@Z), verwiesen in Funktion "public: void __thiscall CKasseDlg::ShowItemPicture(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (?ShowItemPicture@CKasseDlg@@QAEXV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
    Kasse error LNK2019: Nicht aufgeloestes externes Symbol "public: int __thiscall CPicture::Load(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (?Load@CPicture@@QAEHV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z), verwiesen in Funktion "public: void __thiscall CKasseDlg::ShowItemPicture(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (?ShowItemPicture@CKasseDlg@@QAEXV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
    

    und ich komme einfach nicht darauf an was es liegt.

    2. Weiss ich nicht wie ich das Bild in meinem Steuerelement "Picture Control"
    (IDC_PICTURE_CONTROL) oder "Static" (IDC_PICTURE_STATIC) anzeigen lassen kann.
    Ich habe nicht verstanden wie die Picture Klasse es bestimmt, wo das Bild überhaubt angezeigt wird.
    D.h. ich weiss nicht wie ich dieser Klasse sagen kann
    das das Bild in der (Steuerelement)Picture Control angezeigt werden soll

    Habe nun alles mögliche probiert ich habe nicht mal ein pixel vom Bild gesehen.
    Ich sehe schon schwarze Punkte überall... dreh ich schon durch ? 😕 😞

    Bitte um hilfe
    Indian
    🙄

    Download: Picture.zip
    Picture.zip



  • Die wahrscheinlichste Ursache für deine Errors ist, du hast vergessen die lib zu laden in dein Projekt. Du musst die Picture.lib ins Projekt laden(so vorhanden)

    Falls du bereits die neue Version von C++ benutzt (.Net) gibts da bereits eine fertige Klasse die sich da nennt "CImage" Die kann alles, weiß alles und tut alles.

    Falls du noch die Version 6.0 benutzt ist das laden unter CBitmap tatsächlich eine riesen Schweinerei, weil das Dumpfbackenteil nur Bitmaps beherrscht(wie der Name bereits vermuten lässt *gg*)



  • danke... weiss ich auch

    ich habe die Picture.h schon included.



  • die lib, Du musst die .lib deinem Projekt hinzufügen



  • Projekt->Hinzufügen->Datein
    Bibliotheken (lib) auswählen picture.lib laden.

    Das wird wohl fehlen.



  • lediglich

    Picture.h und Picture.cpp ist dabei

    es ist keine lib datei


Anmelden zum Antworten