ListView mit einem Bitmap hinterlegen
-
gude
bin jetzt schon am verzweifeln hab schon einiges gegoogelt finde aber nichts brauchbares... ich denk mal die möglichkeit wirds geben ein ListView mit nem Bild zu hinterlegen.
So wie ich das Problem erfolglos angegangen bin (habe mich der CustomDraw Methode angenommen):
void __fastcall TForm1::ListView1CustomDraw(TCustomListView *Sender, const TRect &ARect, bool &DefaultDraw) { TRect myRect=ARect; /* Abmessungen = unwichtig myRect.left+=Width/4; myRect.right+=Width/4; myRect.top+=Height/4; myRect.bottom+=Height/4; */ // myBK ist vom Typ TPicture und enthält das Bild Sender->Canvas->CopyRect(ARect,myBK->Bitmap->Canvas,myRect); DefaultDraw=false; } //---------------------------------------------------------------------------hab auch noch im FormCreate das geändert nachdem sich nix getan hat:
ListView1->OwnerDraw=true;tut sich aber net wirklich was... ich hoffe mir kann jemand helfen, hab von nen paar klassenkameraden gehört dass das forum top sein soll und immer schnell antworten kommen sollen

wär toll wenn das hier jetzt zutrifft weil das beschäftigt mich jetzt... werd weiterbasteln, würd mich aber über unterstützung freuen
MfG
Neal
-
aus dem werde ich leider auch nicht richtig schlau:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-2674-and-highlight-is-listview.html
...
ich habe noch nie was mit ole gemacht (zumind. bewusst) könnte mir evtl. jemand sagen, was ich einbinden muss damit das klappt? im moment sieht das ganze bei mir so aus:
if (!ListView1->SetBkImage("..\\BK.bmp", TRUE, 100, 100)) AfxMessageBox("No Image"); ListView1->SetTextBkColor(CLR_NONE);~[C++ Fehler] Unit1.cpp(42): E2316 'SetBkImage' ist kein Element von 'TListView'
[C++ Fehler] Unit1.cpp(43): E2268 Aufruf der undefinierten Funktion 'AfxMessageBox'
[C++ Fehler] Unit1.cpp(44): E2247 Zugriff auf '_fastcall TCustomListView::SetTextBkColor(TColor)' nicht möglich~
-
Hallo,
also ein bild ins ListView bekommst du so:void __fastcall TForm1::ListView1CustomDraw(TCustomListView *Sender, const TRect &ARect, bool &DefaultDraw) { Graphics::TBitmap *bmp; bmp = new Graphics::TBitmap(); bmp->LoadFromFile("c:\\ordner\\ordner\\bild.bmp"); ListView1->Canvas->Draw(ARect.Left,ARect.Top,bmp); delete bmp; }Und der Text dann mit DrawText();
Gruß;
-
Hallo
Der Link behandelt MFC-Klassen. Das nützt dir direkt gar nichts.
Irgendwo hatten wir mal einen Thread wo es um Hintergrundbilder in einem Listencontrol (DBGrid/StringGrid/ListView...). Leider habe ich den mit der bescheidenen Forensuche nicht gefunden.bis bald
akari
-
also daniel 23 hat recht: es funktioniert und vielen Dank

akari hat natürlich auch recht... oje ist das peinlich ^^ ... aber trotzdem vielen dank

jetzt muss ich nur irgendwie das TPicture in nen Bitmap kriegen...
vielen dank nochmal, ging wirklich schnell

-
Hallo
jetzt muss ich nur irgendwie das TPicture in nen Bitmap kriegen...
Die Frage ist wohl eher warum hast du überhaupt ein TBitmap? Nimm doch gleich ein TBitmap zum Laden de eigentlichen Bilddaten.
bis bald
akari
-
hehe, hab ich auch jetzt so gelöst... bei TPicture hatte ich halt den Komfort das ich auch JPEG Dateien laden konnte ohne mir Sorgen über das Format machen zu müssen .. jetzt hab ich halt während der Laufzeit mal kurz ein TJPEGImage und muss das in mein Bitmap reinschieben... aber naja die hauptsache es funktioniert! Also vielen Dank nochmal
