Seite 2 von 2
ListView
Verfasst: 12.12.2004 05:47
von Hroudtwolf
Jawohl,das kling gut........
Aber wie heisst das API für dieses ListView ????????
(es ist ja offenbar transparent !)
Verfasst: 12.12.2004 05:50
von MVXA
eben nicht. Man ändert den Hintergrund des Listviews halt auf die BMP, die den Desktop hintergrund darstellen soll. Die Icons werden schon automatisch transparent drauf gezeichnet.
LISTVIEW
Verfasst: 12.12.2004 05:54
von Hroudtwolf
Bleibt mir nur noch die Frage ...............
Wie heisst die API hierfür ??????
Verfasst: 12.12.2004 13:14
von Christian
CodeArchiv schafft Abhilfe. Ein von mir leicht verändertes Beispiel von El_Choni:
Code: Alles auswählen
; English forum: http://purebasic.myforums.net/viewtopic.php?t=5208&highlight=
; Author: El_Choni
; Date: 25. February 2003
#LVBKIF_SOURCE_NONE = 0
#LVBKIF_SOURCE_HBITMAP = 1
#LVBKIF_SOURCE_URL = 2
#LVBKIF_SOURCE_MASK = 3
#LVBKIF_STYLE_NORMAL = 0
#LVBKIF_STYLE_TILE = $10
#LVBKIF_STYLE_MASK = $10
#LVM_SETBKIMAGE = #LVM_FIRST + 68
#LVM_SETBKIMAGEW = #LVM_FIRST + 138
#LVM_GETBKIMAGE = #LVM_FIRST + 69
#LVM_GETBKIMAGEW = #LVM_FIRST + 139
#CLR_NONE = -1
Structure LVBKIMAGE
ulFlags.l
hbm.l
pszImage.l
cchImageMax.l
xOffsetPercent.l
yOffsetPercent.l
EndStructure
CreateImage(0, 32, 32) ; Icon
If StartDrawing(ImageOutput())
Box(0, 0, 32, 32, RGB(155, 155, 255))
StopDrawing()
EndIf
OleInitialize_(0)
If OpenWindow(0, 384, 288, 640, 480, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget, "ListIconGadget background image example")
If CreateGadgetList(WindowID())
ListIconGadget = ListIconGadget(0, 0, 0, 640, WindowHeight(), "Column 0", LVCWidth, #PB_ListIcon_FullRowSelect)
ChangeListIconGadgetDisplay(0, 0)
AddGadgetColumn(0, 1, "Column 1", 640)
AddGadgetItem(0, 0, "Icon 1", UseImage(0))
AddGadgetItem(0, 0, "Icon 2", UseImage(0))
SendMessage_(ListIconGadget, #LVM_SETTEXTCOLOR, 0, $000000)
SendMessage_(ListIconGadget, #LVM_SETBKCOLOR, 0, #CLR_NONE)
SendMessage_(ListIconGadget, #LVM_SETTEXTBKCOLOR, 0, #CLR_NONE)
Buffer = AllocateMemory(512)
GetModuleFileName_(GetModuleHandle_(0), Buffer, 512)
InitialDir$ = GetPathPart(PeekS(Buffer))
FreeMemory(0)
File$ = OpenFileRequester("Select image", InitialDir$, "ListIcon supported images|*.bmp;*.ico;*.gif;*.jpg;*.wmf;*.emf", 0)
If File$
lbk.LVBKIMAGE
lbk\ulFlags = #LVBKIF_STYLE_NORMAL|#LVBKIF_SOURCE_URL;|#LVBKIF_STYLE_TILE
lbk\pszImage = @File$
; lbk\xOffsetPercent;
; lbk\yOffsetPercent;
SendMessage_(ListIconGadget, #LVM_SETBKIMAGE, 0, lbk)
EndIf
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow
EndIf
EndIf
OleUninitialize_()
End
Verfasst: 12.12.2004 15:11
von MVXA
Mir fällt grade auf, die Icons im ListView sind garnicht bewegbar

. Unter VB konnte ich die doch mit dem ähnlichem GUI Element bewegen

Verfasst: 26.07.2006 05:35
von Just_reading
Mir fällt grade auf, die Icons im ListView sind garnicht bewegbar . Unter VB konnte ich die doch mit dem ähnlichem GUI Element bewegen
Dazu musst du dir ein Callback schreiben das ne Drag-Routine hat.
Mit der Message LVM_SETITEMPOSITION kannst du das Icon wieder auf eine neue Stelle schreiben lassen.
Verfasst: 26.07.2006 06:50
von #NULL
>> der Desktop ist nicht anderes als ein ListView (ListIconGadget in PB) im
>> Darstellungsmodus grosser Icons
>> Grüße ... Kiffi
windows bietet nicht zu fällig die möglichkeit von der symboldarstellung in z.b. eine listen- oder detail-ansicht des desktops zu wechseln?
Verfasst: 26.07.2006 10:05
von Kiffi
> windows bietet nicht zu fällig die möglichkeit von der symboldarstellung in
> z.b. eine listen- oder detail-ansicht des desktops zu wechseln?
Code: Alles auswählen
hDesktop=GetDesktopWindow_()
hDesktop=FindWindowEx_(hDesktop, 0, "Progman", "Program Manager")
hDesktop=FindWindowEx_(hDesktop, 0, "SHELLDLL_DefView", 0)
hDesktop=FindWindowEx_(hDesktop, 0, "SysListView32", 0)
; Sinnvolle Flags:
; #LVS_ICON
; #LVS_SMALLICON
; #LVS_LIST
; #LVS_REPORT
SetWindowLong_(hDesktop, #GWL_STYLE, (GetWindowLong_(hDesktop, #GWL_STYLE) & ~#LVS_TYPEMASK) | #LVS_ICON)
Grüße ... Kiffi
Verfasst: 26.07.2006 15:37
von #NULL
dankesehr, KiFFi
