Seite 1 von 1

Checkbox im Header

Verfasst: 04.03.2013 14:34
von hjbremer
Hier eine Variante für alle die Spalte null im ListIcongadget nicht benutzen

Eine Checkbox im Header von Spalte 1 für alles markieren, erspart Strg + A Shortcut

ab Vista, SetWindowTheme nicht unbedingt nötig

Code: Alles auswählen

Import "UxTheme.lib"
   SetWindowTheme(hwnd, classname.p-unicode, titlename)
EndImport

#list_nr = 1

If OpenWindow(0, 100, 100, 400, 500, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   
   flags = #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection
   flags | #PB_ListIcon_MultiSelect
   ListIconGadget(#list_nr, 5, 5, 390, 490, "", 0, flags)
   
   ;SetWindowTheme(GadgetID(#list_nr), "explorer", 0)
   
   AddGadgetColumn(#list_nr, 1, "Name", 100)
   AddGadgetColumn(#list_nr, 2, "Address", 250)
   
   #HDS_CHECKBOXES = $0400
   header = SendMessage_(GadgetID(#list_nr), #LVM_GETHEADER, 0, 0)
   hdstyle = GetWindowLongPtr_(header, #GWL_STYLE)
   hdstyle | #HDS_CHECKBOXES
   SetWindowLongPtr_(header, #GWL_STYLE, hdstyle)
   
   column = 1
   hdi.HDITEM
   hdi\mask = #HDI_FORMAT
   
   SendMessage_(header, #HDM_GETITEM, column, hdi)
   
   #HDF_CHECKBOX = $00000040 
   hdi\fmt | #HDF_CHECKBOX
   SendMessage_(header, #HDM_SETITEM, column, hdi)
   
   
   For j = 1 To 22
      AddGadgetItem(#list_nr, -1, #LF$+"Harry Rannit"+#LF$+"12 Parliament Way, Battle Street, By the Bay")
      AddGadgetItem(#list_nr, -1, #LF$+"Ginger Brokeit"+#LF$+"130 PureBasic Road, BigTown, CodeCity")
   Next
   
   Repeat
      Event = WaitWindowEvent()
   Until Event = #PB_Event_CloseWindow
   
EndIf


Re: Checkbox im Header

Verfasst: 04.03.2013 15:58
von WPö
Moin!

Danke für's Teilen!
Bestätige: Leider nichts für Win XP.

Gruß - WPö

Re: Checkbox im Header

Verfasst: 05.03.2013 15:47
von Lambda
Einfacher/cross-platform wäre ein Item das als "Alles markieren" verwendet wird, oder das hybride Tree/ListIcon Gadget von.. öhm.. ist bei den "Nexus" Gadgets dabei. :D