【HSP3.x 移植版】『HSPの裏技』リストビューを作成してみる ACT-1

『HSPの裏技』リストビューを作成してみる ACT-1(HSP2.x 版)をHSP3.x バージョンへ書き換えたものです。
http://chokuto.ifdef.jp/urawaza/listview1.html

前のが間違ってたので書き直し(3回目・・・)

『HSPの裏技』リストビューを作成してみる ACT-1(HSP2.x 版)をHSP3.x バージョンへ書き換えたものです。
http://chokuto.ifdef.jp/urawaza/listview1.html

前のが間違ってたので書き直し(3回目・・・)

  • タグ:
  • タグはありません
;HSP3.x
;HSP ACT-1
; http://chokuto.ifdef.jp/urawaza/listview1.html
#module ;============= ===============
#uselib "comctl32.dll"
#func InitCommonControlsEx "InitCommonControlsEx" int
;
#define ICC_LISTVIEW_CLASSES 4
#define WS_CHILD 0x40000000
#define WS_VISIBLE 0x10000000
#define LVS_REPORT 0x0001
#define LVM_SETITEM 0x1006
#define LVM_INSERTITEM 0x1007
#define LVM_INSERTCOLUMN 0x101B
#define LVCF_FMT 0x0001
#define LVCF_WIDTH 0x0002
#define LVCF_TEXT 0x0004
#define LVCF_SUBITEM 0x0008
#define LVIF_TEXT 0x0001
; ( global )
#define global LVCFMT_LEFT 0x0000
#define global LVCFMT_RIGHT 0x0001
#define global LVCFMT_CENTER 0x0002
;
#deffunc CreateListView int sx, int sy
;
initinfo = 8, ICC_LISTVIEW_CLASSES
InitCommonControlsEx varptr(initinfo)
;
styleFlags = WS_CHILD | WS_VISIBLE | LVS_REPORT
winobj "SysListView32", "", 0, styleFlags, sx, sy
return
;
#deffunc InsertListViewColumn int objID, int index, str text, int align, int pixels
textbuf = text
; LVCOLUMN
dim lvcolumn, 8
lvcolumn(0) = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM
lvcolumn(1) = align
lvcolumn(2) = pixels
lvcolumn(3) = varptr(textbuf)
; LVM_INSERTCOLUMN
sendmsg objinfo_hwnd(objID), LVM_INSERTCOLUMN, index, varptr(lvcolumn)
return
;
#deffunc InsertListViewItem int objID, int index, str text
textbuf = text
; LVITEM
dim lvitem, 13
lvitem(0) = LVIF_TEXT
lvitem(1) = index
lvitem(5) = varptr(textbuf)
; LVM_INSERTITEM
sendmsg objinfo_hwnd(objID), LVM_INSERTITEM, 0, varptr(lvitem)
return
;
#deffunc SetListViewItemText int objID, int index, int subitem, str text
textbuf = text
; LVITEM
dim lvitem, 13
lvitem(0) = LVIF_TEXT
lvitem(1) = index
lvitem(2) = subitem
lvitem(5) = varptr(textbuf)
; LVM_SETITEM
sendmsg objinfo_hwnd(objID), LVM_SETITEM, 0, varptr(lvitem)
return
#global ;================= =====================
pos 0, 0
CreateListView ginfo_winx, ginfo_winy
listviewID = stat
InsertListViewColumn listviewID, 0, "", LVCFMT_LEFT, 100
InsertListViewColumn listviewID, 1, "", LVCFMT_LEFT, 200
InsertListViewItem listviewID, 0, ""
SetListViewItemText listviewID, 0, 1, ""
InsertListViewItem listviewID, 1, ""
SetListViewItemText listviewID, 1, 1, ""
InsertListViewItem listviewID, 2, ""
SetListViewItemText listviewID, 2, 1, ""
InsertListViewItem listviewID, 3, ""
SetListViewItemText listviewID, 3, 1, ""
InsertListViewItem listviewID, 4, ""
SetListViewItemText listviewID, 4, 1, ""
InsertListViewItem listviewID, 5, ""
SetListViewItemText listviewID, 5, 1, ""
stop
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX