Seite 1 von 1

CreateWindowEx_ / Listview

Verfasst: 14.06.2013 22:14
von nordform
Hallo zusammen!

Bin neu hier und neu bei Purebasic ...

...aufgrund der "Geschwindigkeit" des ListIconGadgets mit vielen Einträgen möchte ich gerne die Windows-ListView verwenden. Leider wird das Fenster nicht initialisiert (ListView Rückgabewert bleibt 0). Was mache ich falsch?

Code: Alles auswählen

Procedure ListView_InsertColumn(Gadget.l, Column.l, Title.s, Width.l, Alignment.l)
  Protected LVCOLUMNBis.LV_COLUMN
  LVCOLUMNBis\mask = #LVCF_TEXT|#LVCF_WIDTH|#LVCF_FMT
  Select Alignment
    Case 0
      LVCOLUMNBis\fmt = #LVCFMT_LEFT
    Case 1
      LVCOLUMNBis\fmt = #LVCFMT_CENTER
    Case 2
      LVCOLUMNBis\fmt = #LVCFMT_RIGHT
    Default
      LVCOLUMNBis\fmt = #LVCFMT_LEFT
  EndSelect
  LVCOLUMNBis\cx = Width
  LVCOLUMNBis\pszText = @Title
  LVCOLUMNBis\cchTextMax = Len(Title)
  ProcedureReturn SendMessage_(GadgetID(Gadget),#LVM_INSERTCOLUMN,Column,@LVCOLUMNBis)
EndProcedure

hWnd = OpenWindow(0,0,0,500,500,"ListView",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
hInstance = GetWindowLongPtr_(hWnd,#GWLP_HINSTANCE) ; 64-BIT
;hInstance = GetWindowLong_(hWnd,#GWL_HINSTANCE) ; 32-BIT

Debug hWnd
Debug hInstance

icex.INITCOMMONCONTROLSEX

icex\dwSize=SizeOf(INITCOMMONCONTROLSEX)
icex\dwICC =#ICC_COOL_CLASSES|#ICC_BAR_CLASSES

icc=InitCommonControlsEx_(@icex)

Debug icc

ListView = CreateWindowEx_(WS_EX_CLIENTEDGE,WC_LISTVIEW,"LISTVIEW64", 
                           WS_CHILD | WS_BORDER | WS_VISIBLE | LVS_EDITLABELS | 
                           LVS_SORTASCENDING | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_EX_CHECKBOXES,
                           10, 10, 480, 480, hwnd, ID_LISTVIEW, hInstance, 0)

Debug ListView 

;ListView_InsertColumn(ListView,0,"1",125,1)
;ListView_InsertColumn(ListView,1,"2",125,1)
;ListView_InsertColumn(ListView,2,"3",125,1)
;ListView_InsertColumn(ListView,3,"4",125,1)

Repeat
  Delay(1)
Until WaitWindowEvent()=#PB_Event_CloseWindow
__________________________________________________
Code-Tags hinzugefügt
14.06.2013
RSBasic

Re: CreateWindowEx_ / Listview

Verfasst: 14.06.2013 22:18
von RSBasic
nordform hat geschrieben:Hallo zusammen!

Bin neu hier und neu bei Purebasic ...

...aufgrund der "Geschwindigkeit" des ListIconGadgets mit vielen Einträgen [...]
Herzlich Willkommen im Forum!

Geht es darum, viele Einträge aufeinmal zu erstellen? Ist es das, was lange dauert?
Wenn ja, dann empfehle ich dir folgendes: http://www.rsbasic.de/aktualisierung/wi ... 3%BCgen.pb

Re: CreateWindowEx_ / Listview

Verfasst: 14.06.2013 22:22
von Kiffi
nordform hat geschrieben:...aufgrund der "Geschwindigkeit" des ListIconGadgets mit vielen Einträgen möchte ich gerne die Windows-ListView verwenden.
bevor Du Dir hier unnötige Arbeit machst: Das PB-ListIconGadget ist das Windows-ListView. ;-)

Performancetipps: siehe oben.

Grüße ... Kiffi

Re: CreateWindowEx_ / Listview

Verfasst: 15.06.2013 14:09
von edel
Das Problem liegt daran :

Code: Alles auswählen

WS_EX_CLIENTEDGE,WC_LISTVIEW,"LISTVIEW64",
                           WS_CHILD | WS_BORDER | WS_VISIBLE | LVS_EDITLABELS |
                           LVS_SORTASCENDING | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_EX_CHECKBOXES,
                           10, 10, 480, 480, hwnd, ID_LISTVIEW, hInstance, 0
Das sind alles Konstanten, in PB fangen diese aber mit # an. #WS_CHILD, #WS_EX_CLIENTEDGE usw waere also richtig.
#WC_LISTVIEW hat den String "SysListView32"


Sonst schau mal hier :
http://www.purebasic.fr/german/viewtopi ... 41#p287841

Re: CreateWindowEx_ / Listview

Verfasst: 15.06.2013 17:05
von nordform
edel hat geschrieben:Das Problem liegt daran :

Das sind alles Konstanten
Dankeschön! Das war das Problem! :)

GELÖSCHT

Verfasst: 15.06.2013 17:56
von mirca
GELÖSCHT