Italia
Foro

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 per 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
Downloadcounter92
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
10.12.2007  
 




Frank
Abbing
Ja, Thomas. Der Code demonstriert es noch besser. Allerdings werden per 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  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.222 Views

Untitledvor 0 min.
Uwe Lang28.04.2020
Ernst23.07.2016
Michael W.07.07.2016
Tommy03.01.2014
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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