C++Builder & VCL でリストビューにソート順アイコン表示

C++Builder の VCL アプリケーションで、ソート可能なリストビューのヘッダーにソート対象カラムとソート順を示すアイコンを表示させる方法を調べたのでまとめてみる。

問題は、VCL にリストビュー内のヘッダーコントロールを取得する手段がないというところで、仕方ないので Win32 API から以下を利用する。

  • ListView_GetHeader() – ヘッダーコントロールのハンドル取得
  • Header_GetItemCount() – アイテム数取得
  • Header_GetItem() と Header_SetItem() – アイテム情報の取得と変更

使ったところは次のような感じ。

https://bitbucket.org/kazssym/dmolist/src/8038d1e15d6f400d3f4fdb049355c84ddda9a462/src/Main.cpp?at=default#cl-127