Code: Select all
INSTALL @lib$ + "WINLIB5A"
REM!WC
LVIS_DROPHILITED = 8
LVIF_TEXT = 1
LVM_INSERTITEM = 4103
LVM_SETITEMTEXT = 4142
LVM_GETEXTENDEDLISTVIEWSTYLE = 4151
LVM_SETEXTENDEDLISTVIEWSTYLE = 4150
LVS_EX_FULLROWSELECT = 32
LVS_EX_GRIDLINES = 1
LVCF_FMT = 1
LVCF_SUBITEM = 8
LVCF_TEXT = 4
LVCF_WIDTH = 2
LVM_INSERTCOLUMN = 4123
LVIF_PARAM = 4
LVIF_STATE = 8
LVIS_FOCUSED = 1
LVIS_SELECTED = 2
LVM_SETITEMSTATE = 4139
LVS_REPORT = 1
WS_CLIPCHILDREN = &2000000
DIM LVCOLUMN{ mask%, fmt%, cx%, pszText%, cchTextMax%, iSubItem% }
DIM LVITEM{mask%, iItem%, iSubItem%, state%, stateMask%, pszText%, cchTextMax%, iImage%, lParam%}
DIM H$(3), W%(3), J%(3), A$(3)
H$() = "Col 1", "Col 2", "Col 3", "Col 4"
W%() = 50, 50, 50, 50
J%() = 0, 0, 0, 0
A$() = "test1", "test2", "test3", "test4"
REM SETUP LISTVIEW
LVCOLUMN.mask% = LVCF_FMT OR LVCF_SUBITEM OR LVCF_TEXT OR LVCF_WIDTH
SYS "InitCommonControls"
lv% = FN_createwindow(@hwnd%, "SysListView32", "", 100, 100, 280, 180, 0, LVS_REPORT OR WS_CLIPCHILDREN, 0)
FOR C% = 0 TO 3
H$ = H$(C%) + CHR$(0)
LVCOLUMN.fmt% = J%(C%) MOD 3
LVCOLUMN.cx% = W%(C%)
LVCOLUMN.pszText% = !^H$
LVCOLUMN.cchTextMax% = LEN(H$)
LVCOLUMN.iSubItem% = C%
SYS "SendMessage", lv%, LVM_INSERTCOLUMN, C%, LVCOLUMN{}
NEXT
REM GRIDLINES & FULLROW
SYS "SendMessage", lv%, LVM_GETEXTENDEDLISTVIEWSTYLE TO S%
SYS "SendMessage", lv%, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, S% OR LVS_EX_GRIDLINES OR LVS_EX_FULLROWSELECT
LVITEM.mask% = LVIF_TEXT OR LVIF_STATE OR LVIF_PARAM
FOR I% = 0 TO 9
FOR S% = 0 TO 3
T$ = A$(S%) + CHR$(0)
LVITEM.iItem% = I%
LVITEM.iSubItem% = S%
LVITEM.pszText% = !^T$
IF S% THEN
SYS "SendMessage", lv%, LVM_SETITEMTEXT, I%, LVITEM{}
ELSE
SYS "SendMessage", lv%, LVM_INSERTITEM, I%, LVITEM{}
ENDIF
NEXT
NEXT
ON SYS sysclick% = @wparam% : RETURN
LVITEM.mask% = LVIF_STATE OR LVIF_PARAM
LVITEM.state% = LVIS_SELECTED OR LVIS_FOCUSED
LVITEM.stateMask% = LVIS_SELECTED OR LVIS_FOCUSED
LVITEM.iItem% = 1: REM ???
LVITEM.iSubItem% = 0: REM ???
LVITEM.lParam% = 1: REM ???
SYS "SendMessage", lv%, LVM_SETITEMSTATE, 1, LVITEM{}
END

Matt