Wie und mit was lade ich Bilder (jpg,gif) am besten?

Indian

Erfahrenes Mitglied
Hi

ich möchte gerne Bilder in einem Steuerelement laden. Die Funktionsweise ist simple. Ich hab ein CListCtrl Steuerelement, sobald ich auf ein Item klicke, soll das dazugehörige Bild in einem geeignent Steuerelement geladen werden. Ich hab bis jetzt auch nicht herausgefunden wie ich ein Bild überhaupt lade.

Nur ich weiss nicht welches dafür am besten geeignet ist.

Kann mir jemand dabei helfen ?

Danke
Indian
 
http://www.tutorials.de/forum/showthread.php?t=175752&highlight=cpicture


Da findeste eine wenig was wie man mit der CPicture Klasse (hänge ich mal an...) umgeht.

Falls es dir hilft, ich poste mal einen Ausschnitt von meinem Code :

Code:
	CRect displaysize;  //Rechteck für die Bildschirmgröße
	CWnd::GetWindowRect(displaysize);  
 int width, height, picwidth, picheight;
 width = (int)displaysize.right;
	height = (int)displaysize.bottom; 
 
 CDC *pDC = new CClientDC( this );
	CPicture m_Picture;
 m_Picture.Load("test.jpg"); // Load From a File - Just Load It (Show Later)
 m_Picture.UpdateSizeOnDC(pDC); // Get Picture Dimentions In Pixels
 picwidth = (int)m_Picture.m_Width;
 picheight = (int)m_Picture.m_Height;
 m_Picture.Show(pDC, CRect(0, 0, width, height)); // show the picture

Ich hoffe du kannst damit dein Problem lösen, ansonsten frag nochmal ;)
 

Anhänge

  • cpicture.zip
    6,1 KB · Aufrufe: 121
sieht bzw. hört sich toll an.

Jedoch habe ich hier zig hundert Bilder, welche angezeigt werden sollen, bei der jeweiligen Auswahl in der CListCtrl. Ich habe nie mit Bilder bzw. noch mit Dateien gearbeitet, deshalb habe ich ein paar fragen. Jedoch wie lade ich diese Bilder die in irgeind Verzeichnis liegen in ein geeignetes Steuerelement (Picture Control oder ein Label Feld).

Kannst du bzw. mir jemand damit helfen? Geht das mit dieser Picture.h Klasse

Wichtig ist nur wie ich die jpg bzw. gif Dateien lade und in welchem Element ich sie anzeigen lassen kann.

Danke
Indian ;)
 
Zuletzt bearbeitet:
Sorry, aber das weiss ich nicht / bzw habe ich noch nie ausprobiert...

Aber ich denke mal das du das über die XP Styles ändern kannst, jedoch ist das nur eine Vermutung, aber wenn ich mich nicht irre, dann stehen dazu ein paar Posts schon hier im Forum

Such mal auch unter dem C++ Forum, dann findest du mehr.
 
hi,

Mit CFileDialog kannst pathnamen von beliebigen Dateine holen, auch .jpg usw.
Code:
...
CFileDialog dlg(TRUE,......); //die Parameter musste dir noch anschauen
if (dlg.DoModal()==IDOK)
{
CString Path;
Path=dlg.GetFileName();
}
...

die Bilder anzeigen kannst du wie MFC openGL geschrieben hat.
Mfg Col.Blake
 
danke MFC openGL && colblake

ich hab mich wohl falsch ausgedrückt. Ist es mit der picture class möglich hier bilder aus einem Verzeichniss zu laden ? Ausserdem ist es mir auch nicht ersichtlich wie ich das bild in eine Steuerelement anzeigen lassen soll. :rolleyes: oder macht das die picture class selber.

MFC openGL: Dachte du hast mit der picture klasse erfolgreich gearbeitet. In welchen Steuerelement hast du das Bild angezeigt und wie hast du das gemacht ?. Ich probier alles mögliche aus, jedoch nada nichts passiert.
 
Ist es mit der picture class möglich hier bilder aus einem Verzeichniss zu laden ?
Ja.
Schau dir die Picture-klasse mal genau an.
Hier gibt es die Klasse zum download:link

Ausserdem ist es mir auch nicht ersichtlich wie ich das bild in eine Steuerelement anzeigen lassen soll.

Du must für die Picture klasse einen sogenannten device reservieren. Das ist ein Speicherabbild eines Objektes.
CDC *dc= new ClientDC(this);

legt zb. ein Device von deinem aktuellen Form (Dialog) an.
Der code würde in etwa so aussehn:
Code:
...
CDC *dc= new ClientDC(this);
CPicture pic;
RECT rect;

rect.left = 0;
rect.top = 0;
rect.right = 100;
rect.bottom =100;

pic.Load("c:\\......\\bild.jpg");
pic.Show(dc,rect);//zeigt das bild in einem rechteck(rect) auf deinem aktuellem Dialog
...

Wie man ein Bild in einem Steuerelement anzeigen lässt ,weis ich jetzt nicht aus dem Kopf.
So ich hoffe das beantwortet in etwa deine Fragen.
Mfg Col.Blake
 
Zuletzt bearbeitet:
VIELEN DANK

im grossen und ganzen ist ja alles geklärt nur das Hauptproblem habe ich noch nicht gelösst. Ich muss das Bild auf jedenfall in einem Steuerelement spriche Picture Control, Static Text (iStatEditor) etc. anzeigen. Mir wäre jedes Steuerelement recht. Hauptsache ich kann die Bilder auf einem Dialog irgendow in einer Ecke mit der CListCtrl anzeigen lassen. :rolleyes:

Man ich hab viel komplizierte Sachen schon gelösst aber das hier lässt sich einfach nicht lössen. Mir kommt es vor das das einfachste am alle kompliziertesten ist :(
 
Hi

alsow wenn ich deinen Code ausführe bekomme ich folgende Fehlermeldung

Code:
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)
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 fatal error LNK1120: 2 unaufgeloeste externe Verweise

aah... ich spring gleich ausm Fenster. Hocke nun über 2 Wochen an diesem Problem. Es kann doch nicht so schwer sein. :rolleyes:
 
Zuletzt bearbeitet:
Ich muss zugeben ich habs nicht getestet. aber laut spezifikation von dem Macher der CPicture-klasse müsste es funktionieren.
Ich bin in ca 2 Stunden zuhaus dann werd ichs mal ausprobieren und dir schreiben. ok?



Bis dann
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück