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 API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...