Explorer Ikonen

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

ListView

Beitrag von Hroudtwolf »

Jawohl,das kling gut........
Aber wie heisst das API für dieses ListView ????????
(es ist ja offenbar transparent !)
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag 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.
Bild
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

LISTVIEW

Beitrag von Hroudtwolf »

Bleibt mir nur noch die Frage ...............

Wie heisst die API hierfür ??????
Christian
Beiträge: 73
Registriert: 31.08.2004 16:02

Beitrag 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
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Mir fällt grade auf, die Icons im ListView sind garnicht bewegbar :shock:. Unter VB konnte ich die doch mit dem ähnlichem GUI Element bewegen :freak:
Bild
Just_reading
Beiträge: 13
Registriert: 26.07.2006 03:26

Beitrag 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.
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag 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?
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

dankesehr, KiFFi :)
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten