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