掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
リストコントロールのサブアイテムにアイコンを表示させたい (ID:70415)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません、もう一度、元のソースを張り直します。 // リストコントロール初期化 void CNoticeDlg::ListInit() { LVCOLUMN lvc; //LVCOLUMNはカラム情報が入った構造体 TCHAR caption[][32] = {_T("1"), _T("2"), _T("3")}; const int clmNum = sizeof caption /sizeof caption[0]; HICON hIcon = NULL; // サブアイテムのイメージリスト設定 m_lcIconList.SetExtendedStyle( m_lcIconList.GetExtendedStyle() | LVS_EX_HEADERDRAGDROP | LVS_EX_SUBITEMIMAGES ); //イメージリストを初期化。 m_imageList.Create( 16, //イメージの幅 16, //高さ ILC_COLOR, //色数 3, //初期イメージ数 1 //拡張単位 ); //####イメージリストにアイコンを追加########################### //CWinApp::LoadIcon()関数でアイコンリソースを読み込み if((hIcon = AfxGetApp()->LoadIcon(IDI_ICON1)) != NULL) { //CImageList::Add()関数で読み込んだアイコンを追加 m_imageList.Add(hIcon); } if((hIcon = AfxGetApp()->LoadIcon(IDI_ICON2)) != NULL) { m_imageList.Add(hIcon); } if((hIcon = AfxGetApp()->LoadIcon(IDI_ICON3)) != NULL) { m_imageList.Add(hIcon); } //############################################################# //CListCtrl::SetImageList()でイメージリストをリストコントロールにセット m_lcIconList.SetImageList(&m_imageList, LVSIL_SMALL); //int imageCount = m_imageList.GetImageCount(); lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; // 有効フラグ for (int i = 0; i < clmNum; i++) { lvc.iSubItem = i; // サブアイテム番号 lvc.pszText = caption[i]; // 見出しテキスト lvc.cx = 100; // 横幅 m_lcIconList.InsertColumn(i, &lvc); } } ---------------------------------------------------------------- void CNoticeDlg::ListAddItem() { //構造体 struct{ TCHAR name[32]; int price; int num; } item [] = { {_T("鉛筆"), 50, 3}, {_T("消しゴム"), 100, 7}, {_T("ボールペン"), 120, 10}, {_T("万年筆"), 1000, 5}, {_T("定規"), 150, 9}, }; //変数で確保されているメモリサイズを調べる const int itemNum = sizeof item /sizeof item[0]; //LVITEMはアイテム情報が入った構造体 LVITEM lvi; CString str; int i=0; int index = 0; int err = 0; //itemNumのサイズ分まわす for(i = 0; i < itemNum; i++) { // 商品名 if(!err) { //lvi.mask = LVIF_TEXT | LVIF_IMAGE; //lvi.maskには構造体のどのメンバが有効なのかを指定 lvi.mask = LVIF_TEXT | LVIF_IMAGE; lvi.iItem = i; //アイテム番号(行のインデックス) lvi.iSubItem = 0; //サブアイテム番号(列のインデックス)を指定 lvi.pszText = item[i].name; lvi.iImage = 0; if( (index = m_lcIconList.InsertItem(&lvi)) == -1 ) { err = 1; } } // 単価 if(!err) { str.Format(_T("%d"), item[i].price); lvi.iItem = index; lvi.iSubItem = 1; lvi.pszText = const_cast<LPTSTR>(static_cast<LPCTSTR>(str)); lvi.iImage = 1; //SetItem()でリストビューコントロールにアイテムを挿入 if(!m_lcIconList.SetItem(&lvi)) { err = 1; } } // 個数 if(!err) { str.Format(_T("%d"), item[i].num); lvi.iItem = index; lvi.iSubItem = 2; lvi.pszText = const_cast<LPTSTR>(static_cast<LPCTSTR>(str)); lvi.iImage = 2; if(!m_lcIconList.SetItem(&lvi)) { err = 1; } } if(err) { break; } } } ListAddItem()の中のlvi.pszTextを、それぞれ_T("")にした場合にと言うことです。 もしかして、根本的な事を質問しているのかもしれません(汗) 宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.