こんにちは。
Windowsでレポート状態表示のリストコントロールについて質問です。
リストコントロールははオーナーデータで表示しています。
一覧でアイテムの横にアイコン(ビットマップ)を表示しています。
またソートできるようにし、コラム部分には昇順か降順か分かるように▲▼が
表示されるようにしようと思っています。
リストコントロールに表示するアイテム用のイメージリストとヘッダー
コントロール用のイメージリストを用意し、リストコントロールと
リストコントロールから取得したヘッダーコントロールにそれぞれ
追加したのですが、
Header_SetImageList(ヘッダーコントロールのウィンドウハンドル) ;
ListView_SetImageList(リストコントロールのウィンドウハンドル) ;
上記の順番では後から追加したイメージリストで上書きされてしまいました。
Header_GetImageListでイメージリストを取るとListView_SetImageListで
セットしたイメージリストのハンドルが取得されます。
リストコントロールでイメージリストを取り扱う場合はリストアイテムも
ヘッダーも一つのイメージリストで管理しなければならないのでしょうか ?
No.1ベストアンサー
- 回答日時:
こんにちは。
試してみましたが、其の通りのようです。
同一のイメージリストを設定して、リストアイテムを追加する際にイメージリストの飛ばしたい位置の分を加算するしかなさそうです。
HIMAGELIST hImgHDR = ImageList_LoadImage(NULL, "header.bmp", 16, 0, CLR_NONE, IMAGE_BITMAP, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
//HIMAGELIST hImgLST = ImageList_LoadImage(NULL, "list.bmp", 16, 0, CLR_NONE, IMAGE_BITMAP, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
HWND hList = GetDlgItem(hWnd, IDC_LIST1);
HWND hHeader = ListView_GetHeader(hList);
Header_SetImageList(hHeader, hImgHDR);
ListView_SetImageList(hList, hImgHDR, LVSIL_SMALL);
//ListView_SetImageList(hList, hImgLST, LVSIL_SMALL);明らかに影響する
//カラム設定
LVCOLUMN col = {0};
col.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_FMT | LVCF_SUBITEM;
col.pszText = "test";
col.cx = 100;
col.fmt= LVCFMT_LEFT;
//ヘッダ設定
HDITEM hi = {HDI_IMAGE | HDI_FORMAT};
hi.fmt = HDF_IMAGE;
for(col.iSubItem = 0; col.iSubItem < 2; ++col.iSubItem)
{
ListView_InsertColumn(hList, col.iSubItem, &col);
//ヘッダのイメージリスト位置設定
hi.iImage = col.iSubItem;
Header_SetItem(hHeader, col.iSubItem, &hi);
}
//リストアイテム設定
LVITEM item = {LVIF_TEXT | LVIF_IMAGE};
TCHAR buf[80];
TCHAR text[128];
for(item.iItem = 0; item.iItem < 30; ++item.iItem)
{
::wsprintf(buf, "%d", item.iItem);
::_tcscpy(text, TEXT("ITEM"));
::_tcscat(text, buf);
item.pszText = text;
item.iImage = 2/*イメージリスト位置の飛ばしたい分*/ + ???
ListView_InsertItem(hList, &item);
}
早々のレスありがとうございます。
私も同じ結論になりました。あまくまとめるようにしたいと想います。
ソースコードも参考になります。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式について教えてください。 7 2023/06/18 10:16
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Google Maps Googleマップ 複数端末で同一アカウントを使っているのにパソコンでのみ表示が異なる 1 2022/07/16 21:03
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- Excel(エクセル) excelにおける転記マクロの書き方 2 2023/05/12 03:16
- HTML・CSS リストの並べ替え 1 2022/09/13 15:27
- Android(アンドロイド) タスクやTodoのandroidアプリで、リスト上でタスクの登録日時を表示できるものはありませんか? 2 2023/07/17 17:54
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) Excelで質問です。 詳細(写真) ①黄色の部分を全てプルダウンを設定する。 ②リストはG列 ③リ 1 2023/06/16 21:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
フォームでPDFを表示させた...
-
ActiveXコントロールを.NETにイ...
-
CEdit の内容が変わった時にメ...
-
VB6.0のデザイン時 コントロー...
-
スピンボタンを右クリックして...
-
Win32のリストコントロールで縦...
-
ダイアログボックスのボタンコ...
-
リストボックスの同期
-
Accessのタブコントロールを2...
-
コモンダイアログコントロール...
-
連続で印刷すると画像が更新さ...
-
スクロールバーのつけ方
-
C#でChartコントロールを...
-
WM_SIZEを発生させる方法
-
DateTimePickerでに年月までし...
-
C#.NETでのCOMコンポーネント作...
-
EXCELVBA リストボックスで選択...
-
ワードのドロップダウンリスト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
DateTimePickerでに年月までし...
-
フォームでPDFを表示させた...
-
スピンボタンを右クリックして...
-
連続で印刷すると画像が更新さ...
-
C++6.0でのresource.hについて
-
ActiveXコントロールを.NETにイ...
-
コモンダイアログコントロール...
-
EXCELVBA リストボックスで選択...
-
エクセル - リストボックスのマ...
-
警告表示を非表示にしたい
-
CEdit の内容が変わった時にメ...
-
ワードのドロップダウンリスト
-
文字色を変えたい(ACCESS VBA)
-
WM_SIZEを発生させる方法
-
VBAでリストボックス内で↑↓の操...
-
WS_TABSTOPが機能するコントロ...
-
VB6.0のデザイン時 コントロー...
-
Excel VBAでのMultipageの選択
おすすめ情報