gpt4 book ai didi

德尔福,TTreeView : how to get the screen coordinates of the given node and its icon?

转载 作者:行者123 更新时间:2023-12-03 14:48:09 28 4
gpt4 key购买 nike

请帮助我获取 TreeView 中给定 TTreeNode 的状态图标矩形的屏幕坐标(我的意思是 TTreeView.txt 中指定的图标)。 StateImages 属性)。

有一个 TTreeView.GetHitTestInfoAt(X, Y: integer): : THitTests 函数,但这并不完全是我想要的;它表示给定的坐标是否对应于标签、图标或项目的状态图标,但我需要知道单击了图标的哪一部分。

(原因是我想实现 TreeView 节点,每个项目有两个复选框,并且我使用 StateImages 来模拟复选框(一个状态是选中状态)项,另一个状态是未选中的项)。据我了解,要知道单击了哪个复选框,我需要将光标坐标与状态图标坐标进行比较。如何获取它们?)

最佳答案

您可以向控件发送 tvm_GetItemRect消息将告诉您项目边界框的客户端坐标。使用它以及您所知道的标签文本和图标的相对位置来确定鼠标在图标中单击的位置。

您可能更愿意发送 tvm_HitTest,而不是 GetHitTestInfoAt消息,因为它会立即为您提供 HitTest 信息和项目句柄; tvm_GetItemRect 需要一个句柄。

您不需要屏幕坐标,因为到目前为止涉及的所有坐标都是客户端坐标,但您可以调用 ClientToScreen如果你真的想要屏幕坐标。

关于德尔福,TTreeView : how to get the screen coordinates of the given node and its icon?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com