排列,排序和查找

【勇芳软件工作室】汉化HomePreviousNext

您可以使用列表视图消息来排列和排序项目,并根据其属性或位置查找项目。安排重新排列项目以在网格上对齐,但项目的索引不会更改。排序更改项目序列(及其相应的索引),然后相应地重新定位它们。您只能在图标和小图标视图中排列项目,但您可以在任何视图中排序项目。

要安排项目,请使用LVM_ARRANGE消息。您可以通过指定LVS_AUTOARRANGE窗口样式来确保随时安排项目。

要排序项目,请使用LVM_SORTITEMS消息。当您使用此消息排序时,您指定列表视图控件调用的应用程序定义的回调函数,以比较任何两个项目的相对顺序。控制传递到比较功能与两个项目中的每一个相关联的项目数据。项目数据是在项目的LV_ITEM结构的lParam的成员插入到列表中时指定的值。通过指定适当的项目数据并提供适当的比较功能,您可以按其标签,任何子项或任何其他属性对项目进行排序。请注意,排序项目不会对相应的子项进行重新排序。因此,如果任何子项不是回调项,则必须在排序后重新生成子项。

您可以通过指定LVS_SORTASCENDING或LVS_SORTDESCENDING窗口样式来确保列表视图控件始终排序。具有这些样式的控件使用项目的标签文本按升序或降序排序。使用这些窗口样式时,不能提供比较功能。如果列表视图控件具有这些样式,则如果尝试将具有LPSTR_TEXTCALLBACK的项目作为其LV_ITEM结构的pszText成员插入,则LVM_INSERTITEM消息将失败。

您可以使用LVM_FINDITEM消息找到具有特定属性的列表视图项。您可以通过使用LVM_GETNEXTITEM消息找到处于指定状态的列表视图项,并与给定项目具有指定的几何关系。例如,您可以检索指定项目右侧的下一个选定项目。