在我的数据库中,我有一个带有 guid 和名称字段的表。 guid 是我的主键。我可以查询表并使用“名称”数据字段填充树。我的问题是名称字段不是唯一的,因此很难跟踪它是哪个 guid + 名称组合。例如,我的 TreeView 可能看起来像这样:
-Cities in America
|
-Cities in Oregon
|
+Milwaukee
+Salem
|
-Cities in Wisconsin
|
-Milwaukee
-Madison
俄勒冈州密尔沃基市的 guid 与威斯康星州的不同。当用户单击 Milwaukee 中的任何一个时,我如何才能跟踪选择了哪一个?我需要知道该选择的 GUID,以便我可以重新查询数据库并获取与该城市相关的其他字段。
最佳答案
当您将一个项目插入到 TreeView 中时,您可以包含一个 lParam。它只是一个 32 位项目,因此您不能直接存储 GUID,但您可以(例如)在将项目插入树中时创建一个 GUID 数组,并将索引存储到 lParam 中的数组中。
当用户点击一个项目时,将选择该项目,您将收到一条 TVN_SELCHANGED
消息,其中将包含(除其他事项外)指向 TVITEM
的指针,该指针将包含您插入的 lParam 作为元素。然后您可以使用它来查找您的 GUID。
关于c++ - 从记录集或数据库查询填充时,如何跟踪树中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389218/