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_CloseWindowCode-Tags hinzugefügt
14.06.2013
RSBasic

