Deutsch
Forum

JPEG in Listview als Icon

 

Jac
de
Lad
Der Titel sagts schon...geht das?
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
03.12.2007  
 




Frank
Abbing
Als Hintergrund? No prob. Anstelle Icon geht auch - via Imagelist.
 
03.12.2007  
 




Jac
de
Lad
Jaja, aber wie kriege ich das in die Imagelist rein??
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
03.12.2007  
 




Frank
Abbing
Gibt ne Menge API für die Imagelisten. Dein Freund ist ImageList_Add().
 
03.12.2007  
 




Jac
de
Lad
Ach komm schon Frank. Ich kann an sich mit Imagelisten umgehen. Aber nur mit BMP/ICO und so. Wie kriege ich da ein JPEG rein? Womit lade ich das...?
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
03.12.2007  
 




Jörg
Sellmeyer
Ich würde mal sagen, Du erzeugst mit Create(hPic,...) ein Handle und übergibst das an die Imageliste.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
03.12.2007  
 




Jac
de
Lad
hPic geht nicht. Ich hab auch schon gegooglet ohne Ende...ich komme nicht weiter.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
10.12.2007  
 




Jac
de
Lad
Roland, hast du ne Idee?
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
10.12.2007  
 




GDL
Hi,

bekommst Schützenhilfe von mir.Würde auch gerne Jpeg als Iconbild in der 1sten Spalte einer Zeile haben.
Habe zusätzlich noch das Prob. dass zur Erstellzeit so ca. 1000 jpegs noch auf Icogröße verkleinert werden müssen.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
10.12.2007  
 




Frank
Abbing
Manche GDI-API verlangt freie Bitmaps und manche Bitmaps, die an einen HDC gekoppelt sind. Mit SelectObject() kannst du Bitmaps an HDCs koppeln und lösen.
Wichtig: Die Bitmaps erst freigeben, wenn nachdem du das Listview zerstört hast.
Hier einer meiner Listview.dll-Source, der diese Technik zeigt. Du kannst den Source leicht an deine Bedürfnisse anpassen...
KompilierenMarkierenSeparieren
Declare lvdll&,listview&,text$,x&,y&,z&,ilist&,bild1&,bild2&
Def GetSysColor(1) !USER32,GetSysColor
Def CreateBitmap(5) !GDI32,CreateBitmap
Def SelectObject(2) !GDI32,SelectObject
Def ImageList_Create(5) !comctl32.dll,ImageList_Create
Def ImageList_Destroy(1) !comctl32.dll,ImageList_Destroy
Def ImageList_Add(3) !comctl32.dll,ImageList_Add
 $I Listview_Funktionen.inc
lvdll&=usedll(Listview.dll)
Prozedure: Icons/Bilder zufällig setzen

Proc BildSetzen

    SetIconColumn(1)
    SetIcon(listview&,0,Rnd(4))
    SetIcon(listview&,1,Rnd(4))
    SetIcon(listview&,2,Rnd(4))
    SetIcon(listview&,3,Rnd(4))
    SetIconColumn(2)
    SetIcon(listview&,0,Rnd(4))
    SetIcon(listview&,1,Rnd(4))
    SetIcon(listview&,2,Rnd(4))
    SetIcon(listview&,3,Rnd(4))
    SetIconColumn(3)
    SetIcon(listview&,0,Rnd(4))
    SetIcon(listview&,1,Rnd(4))
    SetIcon(listview&,2,Rnd(4))
    SetIcon(listview&,3,Rnd(4))

EndProc

Windowtitle Listviews und Spielereien mit Bitmap-Grafiken
Windowstyle 26+512
Window 200,200-440,360
Cls GetSysColor(15)
Usefont MS Sans Serif,10,0,0,0,0
SetDialogFont 1
InitMessages(%hwnd)
Gewünsche Bildgrösse für dieses Demo: 64 x 64 Pixel
ilist&=ImageList_Create(64,64,33,0,0)
listview&=CreateListView(%hwnd,%hinstance,0,RGB(255,255,255),-1,$403)
Leere Bitmap erstellen
x&=CreateBitmap(64,64,1,1,0)
MCls 64,64
StartPaint -1
Speicherbitmap mit Grafik füllen
Speicherbitmap gegen leere Bitmap tauschen, um sie in Imageliste einfügen zu können
Bitmaps zurücktauschen
Cls RGB(255,255,255)
UsePen 1,4,RGB(0,0,255)
Ellipse 5,10-50,50
y&=SelectObject(%hdc,x&)
ImageList_Add(ilist&,y&,0)
x&=SelectObject(%hdc,y&)
Wiederholen für nächstes Grafikobjekt
Cls RGB(255,255,255)
UsePen 2,2,RGB(0,255,0)
Rectangle 5,10-50,50
y&=SelectObject(%hdc,x&)
ImageList_Add(ilist&,y&,0)
x&=SelectObject(%hdc,y&)
Wiederholen...
Cls RGB(255,255,255)
UsePen 3,3,RGB(255,0,0)
RoundRect 5,10-50,50;24,24
y&=SelectObject(%hdc,x&)
ImageList_Add(ilist&,y&,0)
x&=SelectObject(%hdc,y&)
Cls RGB(255,255,255)
UsePen 4,2,RGB(255,0,255)
Line 5,10-50,50
y&=SelectObject(%hdc,x&)
ImageList_Add(ilist&,y&,0)
x&=SelectObject(%hdc,y&)
EndPaint
Leere Bitmap zerstören
DeleteObject x&
SetImageList(listview&,ilist&)
Leere Listviewspalten- und zeilen erzeugen
BuildListview(listview&,4,4,128,0)
Erste Spalte unbrauchbar machen (wegen ungewünschter Selektierung)
SetColumnWidth(listview&,0,0)
BildSetzen
Spaltentexte
text$=Thema 1
SetColumnName(listview&,Addr(text$),1)
text$=Thema 2
SetColumnName(listview&,Addr(text$),2)
text$=Thema 3
SetColumnName(listview&,Addr(text$),3)
Itemtexte generieren
x&=0
y&=0

Whileloop 12

    text$=Bild +Str$(&loop)
    SetItemText(listview&,addr(text$),x&+1,y&)
    x&=x&+1

    If x&>=3

        x&=0
        y&=y&+1

    EndIf

EndWhile

ShowListView(listview&,16,16,400,300)
SetTimer 150

While 1

    waitinput
    Case %key=2:BREAK
    BildSetzen

EndWhile

KillTimer
ImageList_Destroy(ilist&)
DestroyWindow(%hwnd)
freedll lvdll&
End
 
10.12.2007  
 




Thomas
Freier
Frank, du hast doch das Beispiel: Grosse_Bitmap-Icons.prf,
damit kann man doch auch *.jpg und *.gif verwenden; *.png ging nicht.

88 kB
Hochgeladen:10.12.2007
Ladeanzahl92
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
10.12.2007  
 




Frank
Abbing
Ja, Thomas. Der Code demonstriert es noch besser. Allerdings werden für die entscheidenen Sachen Listview.dll-Funktionen verwendet, während der andere Code das manuell erledigt.
ImageList_Add() kann PNG nicht laden. Aber dank OLE werden JPG, GIF und Co aber akzeptiert. Jac, ich sagte dir ja schon, ImageList_Add ist dein Freund...
 
11.12.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.183 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang28.04.2020
Ernst23.07.2016
Michael W.07.07.2016
Tommy03.01.2014
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie