Checkbox Treeview复选框(如何获取选中值?)

Checkbox Treeview复选框(如何获取选中值?),checkbox,treeview,powerbuilder,Checkbox,Treeview,Powerbuilder,我遇到了如何从TreeviewItem中的复选框中获取值的问题。在下面的链接中,Terry希望使用此方法 一种方法是使用treeview上的checkbox属性,然后检查treeview项目的StatePicture Unchecked=1,Checked=2 但我仍然不知道如何使用它。我不知道是否需要将值1,2声明为StatePicture,或者当我选中/取消选中时,该值将自动设置。是,这是可能的。您可以通过一点代码来实现这一点。首先,您需要创建两个结构。 从结构中键入os_点 长l_x 长l

我遇到了如何从TreeviewItem中的复选框中获取值的问题。在下面的链接中,Terry希望使用此方法

一种方法是使用treeview上的checkbox属性,然后检查treeview项目的StatePicture Unchecked=1,Checked=2

但我仍然不知道如何使用它。我不知道是否需要将值1,2声明为StatePicture,或者当我选中/取消选中时,该值将自动设置。

是,这是可能的。您可以通过一点代码来实现这一点。首先,您需要创建两个结构。 从结构中键入os_点 长l_x 长l_y 端型

从结构中键入os_tvhittestinfo os_point stru pt 长l_旗 长l_hitem 端型

然后声明这些实例变量 //实例变量 公众: 常数uint TVM_HITTEST=4369 常数uint TVHT\u ONITEMSTATEICON=64

受保护: 布尔ib_stateclick=FALSE 布尔ib_stateclickin=FALSE 长柄

然后需要声明本地外部函数 //局部外部功能 函数long HitMsg long hWindow、uint uMsg、long wParam、REF OS_tvhitestinfo lParam LIBRARY user32.dll别名

在Treeview上控制鼠标移动事件编写此代码 //Treeview鼠标移动事件 OS_TVHITTESTINFO lstr_tvhittest

把手

//获取有关是否已单击状态图标的信息。 lstr_tvhittest.str_pt.l_x=UnitsToPixels xpos,XUnitsToPixels! lstr_tvhittest.str_pt.l_y=UnitsToPixels ypos,YUnitsToPixels

//发送消息以检索鼠标指向的项目的句柄。 HITMG il_句柄,TVM_HITTEST,0,lstr_tvhittest

//如果超过状态复选框,则设置标志。 如果lstr_tvhittest.l_hItem为0,则 ib_stateclick=lstr_tvhittest.l_flags=TVHT_OnItemStateCon 如果结束

然后在Treeview上单击事件,编写以下代码 //Treeview单击事件 TreeviewItem l_tviold 这个.GetItemhandle,l_tviold

如果是IBU状态,请单击 如果l_tviold.StatePictureIndex=1,则 //选中复选框 Messagebox,“+Stringhandle上的复选框已选中” 其他的 //复选框未选中 Messagebox,“+Stringhandle上未选中的复选框” 如果结束 如果结束

完成了。从中收集的信息

问候 拉吉