| |
|
|
- Seite 1 - |
|
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 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
Frank Abbing | Als Hintergrund? No prob. Anstelle Icon geht auch - via Imagelist. |
|
|
| |
|
|
|
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(). |
|
|
| |
|
|
|
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 | |
|
| 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 |
|
|
| |
|
|
|
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... KompilierenMarkierenSeparierenDeclare 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
|
|
|
| |
|
|
|
Thomas Freier | Frank, du hast doch das Beispiel: Grosse_Bitmap-Icons.prf, damit kann man doch auch *.jpg und *.gif verwenden; *.png ging nicht. |
|
|
| |
|
|
|
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... |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Jac de Lad | Ok, danke, ich ziehs mir 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 | 11.12.2007 ▲ |
|
|
|