VB6 API LISTVIEW(チェックボックス付き)にチェックを付けたい
CreateWindowExでLISTVIEW(チェックボックス付きのレポートビュー)を作ったのですが、「山田花子」行にソースでチェックを付ける方法が分かりません。
Form1のソース
↓
Option Explicit
Private Sub Form_Load()
Dim lngRet As Long
Dim lvcol As LV_COLUMN
Dim rStyle As Long
Dim item As LV_ITEM
'-- リストビューの作成
hList = CreateWindowEx(WS_EX_CLIENTEDGE, _
WC_LISTVIEW, "", _
WS_CHILD Or WS_VISIBLE Or WS_BORDER Or _
WS_CLIPSIBLINGS Or WS_CLIPCHILDREN Or _
LVS_REPORT, _
0&, 0&, Me.ScaleWidth / Screen.TwipsPerPixelX, 200&, _
Me.hwnd, _
0&, _
App.HINSTANCE, _
ByVal 0&)
'拡張スタイルを設定
rStyle = rStyle Or LVS_EX_FULLROWSELECT Or LVS_EX_GRIDLINES Or LVS_EX_CHECKBOXES
SendMessageByNum hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0&, rStyle
'-- カラムヘッダーの追加
With lvcol
.mask = LVCF_FMT Or LVCF_WIDTH Or LVCF_TEXT Or LVCF_SUBITEM
.fmt = LVCFMT_LEFT
.cx = 100
.pszText = "名前"
.iSubItem = 0
lngRet = ListView_InsertColumn(hList, 0&, lvcol)
End With
'-- リストアイテムの追加
With item
.mask = LVIF_TEXT Or LVIF_IMAGE
' 1つめ
.pszText = "山田 太郎"
.iItem = 0
.iSubItem = 0
.iImage = 0
lngRet = ListView_InsertItem(hList, item)
' 2つめ
.pszText = "山田 花子"
.iItem = 1
.iSubItem = 0
.iImage = 1
lngRet = ListView_InsertItem(hList, item)
End With
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'-- リストビューを破棄
DestroyWindow hList
End Sub
標準モジュールは補足に書きます
お礼
やっぱりその方法しかないんですかね。 他に回答がないみたいですし・・・。 .Netじゃ不可能ぽいみたいですね。 ---- ちょっと試してみた所、スムーズに色チェンジされているようなので、とりあえずはこの方法で行ってみたいとおもいます。 ありがとうございました!