サンプルの一部です。
Public Function IsTVItemChecked(hwndTV As Long, hItem As Long) As Boolean
Dim tvi As TVITEM
With tvi
.mask = TVIF_STATE
.hItem = hItem
.stateMask = TVIS_STATEIMAGEMASK
End With
Call TreeView_GetItem(hwndTV, tvi)
IsTVItemChecked = (tvi.state And INDEXTOSTATEIMAGEMASK(IIL_CHECKED))
End Function
Public Function IsTVItemCheckedFromClick(hWnd As Long, x As Long, y As Long) As Boolean
Dim tvhTI As TVHITTESTINFO
Dim fChecked As Boolean
tvhTI.pt.x = x
tvhTI.pt.y = y
If TreeView_HitTest(hWnd, tvhTI) Then
fChecked = IsTVItemChecked(hWnd, tvhTI.hItem)
If (tvhTI.flags And TVHT_ONITEMSTATEICON) Then fChecked = Not fChecked
IsTVItemCheckedFromClick = fChecked
End If
End Function
Public Function TreeView_HitTest(hWnd As Long, lpHT As TVHITTESTINFO) As Long
TreeView_HitTest = SendMessageAny(hWnd, TVM_HITTEST, 0&, lpHT)
End Function
|