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 sollHabe 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