リスト項目とイメージ リスト
更新 : 2007 年 11 月
リスト コントロール (CListCtrl) の "項目" は、アイコン、ラベルで構成されます。"サブ項目" にその他の情報が含まれている場合もあります。
リスト コントロール項目のアイコンは、イメージ リストに格納されます。1 つ目のイメージ リストには、大きいアイコン ビューで使用するフルサイズのアイコンが格納されます。2 つ目のイメージ リスト (省略可能) には、コントロールのほかのビューで使用する同じアイコンの縮小版が格納されます。3 つ目のイメージ リスト (省略可能) には、チェック ボックスなどの "状態" イメージが格納されます。チェック ボックスは、いくつかのビューで小さいアイコンの前に表示されます。4 つ目のイメージ リスト (省略可能) には、リスト コントロールの各ヘッダー項目に表示されるイメージが格納されます。
メモ : |
---|
リスト ビュー コントロールを LVS_SHAREIMAGELISTS スタイルで作成した場合、不要になったイメージ リストを破棄する必要があります。このスタイルは、1 つのイメージ リストを複数のリスト ビュー コントロールに割り当てた場合に指定します。このスタイルを指定しないと、複数のコントロールが同じイメージ リストを破棄しようとします。 |
リスト項目の詳細については、Windows SDK の「List View Image Lists」と「Items and Subitems」を参照してください。また、『MFC リファレンス』の CImageList クラスに関するトピック、およびこのトピックの「CImageList の使い方」も参照してください。
リスト コントロールを作成するには、新しい項目をリストに挿入するときに使用するイメージ リストを提供する必要があります。この手順の例を次に示します。m_pImagelist は CImageList 型のポインタです。m_listctrl は CListCtrl のデータ メンバです。
m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_ListCtrl.SetImageList(&m_ListImageList, LVSIL_SMALL);
ただし、リスト ビューまたはリスト コントロールでアイコンを表示しない場合は、イメージ リストは必要ありません。