delphi – 如何在TListView列上显示排序箭头?

前端之家收集整理的这篇文章主要介绍了delphi – 如何在TListView列上显示排序箭头?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Windows资源管理器有一个箭头,指示列表视图(在报表视图样式中)哪个列按哪个方向排序(ASC与DESC).

是否可以在Delphi中的TListView上显示这样的排序指示箭头?

解决方法

这里有一些简单的代码标题标记为升序排序:
uses
  Winapi.CommCtrl;

var
  Header: HWND;
  Item: THDItem;
begin
  Header := ListView_GetHeader(ListView1.Handle);
  ZeroMemory(@Item,SizeOf(Item));
  Item.Mask := HDI_FORMAT;
  Header_GetItem(Header,Item);
  Item.fmt := Item.fmt and not (HDF_SORTUP or HDF_SORTDOWN);//remove both flags
  Item.fmt := Item.fmt or HDF_SORTUP;//include the sort ascending flag
  Header_SetItem(Header,Item);
end;

为简单起见,我省略了错误检查.如果你想要相反方向的箭头,我相信你可以找出如何交换逻辑.

关键MSDN主题HDITEM结构的主题.

猜你在找的Delphi相关文章