今回は、リストビューをアイコン表示します。次に、アイコン表示の例を示します。上図のように、アイコン表示ではアイテムのアイコンと名前が表示されるようになります。リストビューをアイコン表示に設定した場合、アイテムはアイコンと共に表示されることになります。アイコン表示を行うには、アイコンを格納したイメージリストのハンドルをListView_SetImageListに指定します。iImageList);hwndは、リストビューのハンドルを指定します。himlは、イメージリストのハンドルを指定します。iImageListは、イメージリストのタイプを表す定数を指定します。今回のプログラムは、リストビューをアイコン表示で作成します。表示されるアイコンは、カレントディレクトリに存在するファイル群のものです。SHGetFileInfoという関数でこれを取得しています。第5引数にSHGFI_SYSICONINDEXを指定すると戻り値にイメージリストのハンドルが返ります。リストビューのアイコンは設定されたイメージリストを参照します。InsertListViewItemでは、カレントディレクトリに存在するファイルの名前を基にアイテムを追加しています。ディレクトリ内のファイルを参照するという関係上、内部が少し複雑になっています。&findData));FindClose(hFindFile);}カレントディレクトリのフルパスは、GetCurrentDirectoryで取得することができます。文字列の最後に\\*を連結しているのは、FindFirstFileを呼び出すためです。FindNextFileを呼び出すことで、ディレクトリ内のファイルの情報をWIN32_FIND_DATA構造体で取得できます。イメージリストのインデックスも指定する必要が生じます。iIconメンバをLVITEM構造体のiImageメンバに指定することになります。iImageを初期化する関係上、maskにLVIF_IMAGEを指定します。ちなみに、lstrcmpのif文は上位のディレクトリと現在のディレクトリを考慮しないために存在しています。