ListCtrlの使い方
21095 ワード
1.CListCtrlスタイル
LVS_ICON:itemごとに大きな図標LVS_を表示するSMALLICON:itemごとに小さなアイコンLVS_を表示LIST:小さなアイコンが付いたitem LVS_の列を表示REPORT:item詳細を表示
直感的な理解:windowsエクスプローラ、「表示」タブの下の「大きなアイコン、小さなアイコン、リスト、詳細」
2.listcttrlスタイルと拡張スタイルの設定
注意:listviewのstyleはmsdnを参照してください
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp
3.データの挿入
4.itemを常に選択
スタイルのShow selection alwaysを選択するか、上の2点目にLVS_を設定します.SHOWSELALWAYS
5.行の選択と選択解除
6.listcttrl内のすべての行のcheckboxの状態を得る
7.listcttrlで選択したすべてのローのシーケンス番号を取得
方法1:
方法2:
8.itemの情報を得る
itemが設定された状態については、msdn文書Q 173242:UseMasks to Set/Get Item States in CListCtrlhttp://support.microsoft.com/kb/173242/en-us
9.listcttrlのすべての列のヘッダー文字列の内容を取得する
10.listcttrlの1つを表示します.すなわち、スクロールバーm_list.EnsureVisible(i, FALSE);
11.listcttrl列数GetItemCount関数を得る
12.すべての列を削除
方法1:while(m_list.DeleteColumn(0))最初の列を削除すると、後ろの列が順番に上に移動します.
方法2:int nColumns=4; for (int i=nColumns-1; i>=0; i--) m_list.DeleteColumn (i);
13.クリックしたlistcttrlの行番号を取得
listcttrlコントロールのNM_を追加CLICKメッセージ対応関数void CTest 6 Dlg::OnClickList 1(NMHDR*pNMHDR,LRESULT*pResult){//方法一:
//方法2:
}
14.listcttrlのcheckboxをクリックするかどうかを判断する
listcttrlコントロールのNM_を追加CLICKメッセージ対応関数
15.listcttrlのitemポップアップメニューを右クリック
listcttrlコントロールのNM_を追加RCLICKメッセージ対応関数
16.itemフォーカスを切り替える場合(キーボードとマウスでitemを切り替える場合を含む)、状態のいくつかの変化順序
listcttrlコントロールのLVN_を追加ITEMCHANGEDメッセージ対応関数
17.別のプロセスのlistcttrlコントロールのitem内容を得る
http://www.codeproject.com/threads/int64_memsteal.asp
18.listviewのitem Q 131284:How To Selecta Listview Item Programmaticallyを選択
http://support.microsoft.com/kb/131284/en-us
19.CListViewでCListCtrlの派生クラスを使用する方法
http://www.codeguru.com/cpp/controls/listview/introduction/article.php/c919/
20.listcttrlのsubitem追加アイコン
m_list.SetExtendedStyle(LVS_EX_SUBITEMIMAGES); m_list.SetItem(..);//具体的なパラメータはmsdnを参照してください
21.CListCtrlにファイルを表示し、ファイルの種類に応じてアイコンを表示する
ネットで見つけたコード、share
22.listcttrlコンテンツがビッグデータ量更新を行う場合、点滅を避ける
または参照
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp
23.listcttrlソート
Q250614:How To Sort Items in a CListCtrl in Report View http://support.microsoft.com/kb/250614/en-us
24.listcttrlでitemを選択したときにiconまたはbitmap Q 141834:How to change the icon or the bitmap of a CListCtrl item in Visual C++を動的に変更
http://support.microsoft.com/kb/141834/en-us
25.itemを追加した後、InsertColumn()を追加すると、カラム全体が移動する問題
Q151897: CListCtrl::InsertColumn() Causes Column Data to Shift http://support.microsoft.com/kb/151897/en-us
26.listcttrlの最初の列が常に左にある問題について
解決策:第1列を虚列とし、第2列から列とデータを挿入し、最後に第1列を削除します.具体的な説明はhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/structures/lvcolumn.asp
27.column headerのドラッグをロックする
http://msdn.microsoft.com/msdnmag/issues/03/06/CQA/
28.clistctrlの列を非表示にする方法
非表示にする列の幅を0にし、その列が非表示になったときに、上の27点目のロックcolumnのドラッグで実現することを検出します.
29.listctcttrlビッグデータ量操作を行う場合はvirtual listを使用する
http://www.codeguru.com/cpp/controls/listview/advanced/article.php/c4151/ http://www.codeproject.com/listctrl/virtuallist.asp
30.itemが259文字しか表示できない問題について
解決策:itemにeditを置く必要があります.
31.listcttrlのcolumn headerのマウスの右クリックに応答する
Q125694: How To Find Out Which Listview Column Was Right-Clicked http://support.microsoft.com/kb/125694/en-us
32.Windowsエクスプローラに似たlistview
Q234310: How to implement a ListView control that is similar to Windows Explorer by using DirLV.exe http://support.microsoft.com/kb/234310/en-us
33.ListCtrlにおいてOnTimerが2回のみ応答する問題
Q200054:PRB: OnTimer() Is Not Called Repeatedly for a List Control http://support.microsoft.com/kb/200054/en-us
34.以下に、様々なカスタム機能を実現するためのlistcttrl派生クラスを示す.
(1)ドラッグ&ドロップhttp://www.codeproject.com/listctrl/dragtest.asp
CListCtrlとCTreeCtrlの間でドラッグ&ドロップhttp://support.microsoft.com/kb/148738/en-us(2)多機能listcttrlはsubitem編集可能、アイコン、radiobutton、checkbox、文字列変更色のクラスhttp://www.codeproject.com/listctrl/quicklist.aspソート対応、subitem編集可能、subitemアイコン、subitem変更色のクラスhttp://www.codeproject.com/listctrl/ReportControl.asp
(3)subitemにハイパーリンク表示http://www.codeproject.com/listctrl/CListCtrlLink.asp
(4)subitemのtooltipヒントhttp://www.codeproject.com/listctrl/ctooltiplistctrl.asp
(5)subitemに進捗バーが表示されるhttp://www.codeproject.com/listctrl/ProgressListControl.asphttp://www.codeproject.com/listctrl/napster.asphttp://www.codeguru.com/Cpp/controls/listview/article.php/c4187/
(6)subitemの色と背景色を動的に変えるhttp://www.codeproject.com/listctrl/highlightlistctrl.asphttp://www.codeguru.com/Cpp/controls/listbox/colorlistboxes/article.php/c4757/(7)クラスvbプロパティダイアログhttp://www.codeproject.com/listctrl/propertylistctrl.asphttp://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c995/http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c1041/(8)subitem(ハイライトされたitemのみ)を選択http://www.codeproject.com/listctrl/SubItemSel.asphttp://www.codeproject.com/listctrl/ListSubItSel.asp(9)行高変更http://www.codeproject.com/listctrl/changerowheight.asp(10)行色変更http://www.codeproject.com/listctrl/coloredlistctrl.asp(11)編集可能subitemのlistcttrlhttp://www.codeproject.com/listctrl/nirs2000.asphttp://www.codeproject.com/listctrl/editing_subitems_in_listcontrol.asp(12)subitem編集可能、combobox挿入、行色変更、subitemのtooltipプロンプトhttp://www.codeproject.com/listctrl/reusablelistcontrol.asp(13)ヘッダで複数行文字列許可http://www.codeproject.com/listctrl/headerctrlex.asp(14)combox挿入http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/(15)背景画像を追加http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c4173/http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c983/http://www.vchelp.net/vchelp/archive.asp?type_id=9&class_id=1&cata_id=1&article_id=1088&search_term=(16)適応幅のlistcttrlhttp://www.codeproject.com/useritems/AutosizeListCtrl.asp(17)
ListCtrlハイライトの色を変更します(デフォルトは青)
しょり
LVS_ICON:itemごとに大きな図標LVS_を表示するSMALLICON:itemごとに小さなアイコンLVS_を表示LIST:小さなアイコンが付いたitem LVS_の列を表示REPORT:item詳細を表示
直感的な理解:windowsエクスプローラ、「表示」タブの下の「大きなアイコン、小さなアイコン、リスト、詳細」
2.listcttrlスタイルと拡張スタイルの設定
LONG lStyle;
lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);// style
lStyle &= ~LVS_TYPEMASK; //
lStyle |= LVS_REPORT; // style
SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);// style
DWORD dwStyle = m_list.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;// ( report listctrl)
dwStyle |= LVS_EX_GRIDLINES;// ( report listctrl)
dwStyle |= LVS_EX_CHECKBOXES;//item checkbox
m_list.SetExtendedStyle(dwStyle); //
注意:listviewのstyleはmsdnを参照してください
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp
3.データの挿入
m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//
m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );
int nRow = m_list.InsertItem(0, “11”);//
m_list.SetItemText(nRow, 1, “jacky”);//
4.itemを常に選択
スタイルのShow selection alwaysを選択するか、上の2点目にLVS_を設定します.SHOWSELALWAYS
5.行の選択と選択解除
int nIndex = 0;
//
m_list.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
//
m_list.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);
6.listcttrl内のすべての行のcheckboxの状態を得る
m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);
CString str;
for(int i=0; i<m_list.GetItemCount(); i++)
{
if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i))
{
str.Format(_T(" %d checkbox "), i);
AfxMessageBox(str);
}
}
7.listcttrlで選択したすべてのローのシーケンス番号を取得
方法1:
CString str;
for(int i=0; i<m_list.GetItemCount(); i++)
{
if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
{
str.Format(_T(" %d "), i);
AfxMessageBox(str);
}
}
方法2:
POSITION pos = m_list.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!
");
else
{
while (pos)
{
int nItem = m_list.GetNextSelectedItem(pos);
TRACE1("Item %d was selected!
", nItem);
// you could do your own processing on nItem here
}
}
8.itemの情報を得る
TCHAR szBuf[1024];
LVITEM lvi;
lvi.iItem = nItemIndex;
lvi.iSubItem = 0;
lvi.mask = LVIF_TEXT;
lvi.pszText = szBuf;
lvi.cchTextMax = 1024;
m_list.GetItem(&lvi);
itemが設定された状態については、msdn文書Q 173242:UseMasks to Set/Get Item States in CListCtrlhttp://support.microsoft.com/kb/173242/en-us
9.listcttrlのすべての列のヘッダー文字列の内容を取得する
LVCOLUMN lvcol;
char str[256];
int nColNum;
CString strColumnName[4];// 4
nColNum = 0;
lvcol.mask = LVCF_TEXT;
lvcol.pszText = str;
lvcol.cchTextMax = 256;
while(m_list.GetColumn(nColNum, &lvcol))
{
strColumnName[nColNum] = lvcol.pszText;
nColNum++;
}
10.listcttrlの1つを表示します.すなわち、スクロールバーm_list.EnsureVisible(i, FALSE);
11.listcttrl列数GetItemCount関数を得る
12.すべての列を削除
方法1:while(m_list.DeleteColumn(0))最初の列を削除すると、後ろの列が順番に上に移動します.
方法2:int nColumns=4; for (int i=nColumns-1; i>=0; i--) m_list.DeleteColumn (i);
13.クリックしたlistcttrlの行番号を取得
listcttrlコントロールのNM_を追加CLICKメッセージ対応関数void CTest 6 Dlg::OnClickList 1(NMHDR*pNMHDR,LRESULT*pResult){//方法一:
LVCOLUMN lvcol;
char str[256];
int nColNum;
CString strColumnName[4];// 4
nColNum = 0;
lvcol.mask = LVCF_TEXT;
lvcol.pszText = str;
lvcol.cchTextMax = 256;
while(m_list.GetColumn(nColNum, &lvcol))
{
strColumnName[nColNum] = lvcol.pszText;
nColNum++;
}
//方法2:
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
CString strtemp;
strtemp.Format(" %d %d ",
pNMListView->iItem, pNMListView->iSubItem);
AfxMessageBox(strtemp);
}
*pResult = 0;
}
14.listcttrlのcheckboxをクリックするかどうかを判断する
listcttrlコントロールのNM_を追加CLICKメッセージ対応関数
void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
m_list.ScreenToClient(&point);
LVHITTESTINFO lvinfo;
lvinfo.pt = point;
lvinfo.flags = LVHT_ABOVE;
UINT nFlag;
int nItem = m_list.HitTest(point, &nFlag);
// checkbox
if(nFlag == LVHT_ONITEMSTATEICON)
{
AfxMessageBox(" listctrl checkbox ");
}
*pResult = 0;
}
15.listcttrlのitemポップアップメニューを右クリック
listcttrlコントロールのNM_を追加RCLICKメッセージ対応関数
void CTest6Dlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
CMenu menu;
VERIFY( menu.LoadMenu( IDR_MENU1 ) );
CMenu* popup = menu.GetSubMenu(0);
ASSERT( popup != NULL );
popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
}
*pResult = 0;
}
16.itemフォーカスを切り替える場合(キーボードとマウスでitemを切り替える場合を含む)、状態のいくつかの変化順序
listcttrlコントロールのLVN_を追加ITEMCHANGEDメッセージ対応関数
void CTest6Dlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CString sTemp;
if((pNMListView->uOldState & LVIS_FOCUSED) == LVIS_FOCUSED &&
(pNMListView->uNewState & LVIS_FOCUSED) == 0)
{
sTemp.Format("%d losted focus",pNMListView->iItem);
}
else if((pNMListView->uOldState & LVIS_FOCUSED) == 0 &&
(pNMListView->uNewState & LVIS_FOCUSED) == LVIS_FOCUSED)
{
sTemp.Format("%d got focus",pNMListView->iItem);
}
if((pNMListView->uOldState & LVIS_SELECTED) == LVIS_SELECTED &&
(pNMListView->uNewState & LVIS_SELECTED) == 0)
{
sTemp.Format("%d losted selected",pNMListView->iItem);
}
else if((pNMListView->uOldState & LVIS_SELECTED) == 0 &&
(pNMListView->uNewState & LVIS_SELECTED) == LVIS_SELECTED)
{
sTemp.Format("%d got selected",pNMListView->iItem);
}
*pResult = 0;
}
17.別のプロセスのlistcttrlコントロールのitem内容を得る
http://www.codeproject.com/threads/int64_memsteal.asp
18.listviewのitem Q 131284:How To Selecta Listview Item Programmaticallyを選択
http://support.microsoft.com/kb/131284/en-us
19.CListViewでCListCtrlの派生クラスを使用する方法
http://www.codeguru.com/cpp/controls/listview/introduction/article.php/c919/
20.listcttrlのsubitem追加アイコン
m_list.SetExtendedStyle(LVS_EX_SUBITEMIMAGES); m_list.SetItem(..);//具体的なパラメータはmsdnを参照してください
21.CListCtrlにファイルを表示し、ファイルの種類に応じてアイコンを表示する
ネットで見つけたコード、share
BOOL CTest6Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HIMAGELIST himlSmall;
HIMAGELIST himlLarge;
SHFILEINFO sfi;
char cSysDir[MAX_PATH];
CString strBuf;
memset(cSysDir, 0, MAX_PATH);
GetWindowsDirectory(cSysDir, MAX_PATH);
strBuf = cSysDir;
sprintf(cSysDir, "%s", strBuf.Left(strBuf.Find("\\")+1));
himlSmall = (HIMAGELIST)SHGetFileInfo ((LPCSTR)cSysDir,
0,
&sfi,
sizeof(SHFILEINFO),
SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
himlLarge = (HIMAGELIST)SHGetFileInfo((LPCSTR)cSysDir,
0,
&sfi,
sizeof(SHFILEINFO),
SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
if (himlSmall && himlLarge)
{
::SendMessage(m_list.m_hWnd, LVM_SETIMAGELIST,
(WPARAM)LVSIL_SMALL, (LPARAM)himlSmall);
::SendMessage(m_list.m_hWnd, LVM_SETIMAGELIST,
(WPARAM)LVSIL_NORMAL, (LPARAM)himlLarge);
}
return TRUE; // return TRUE unless you set the focus to a control
}
void CTest6Dlg::AddFiles(LPCTSTR lpszFileName, BOOL bAddToDocument)
{
int nIcon = GetIconIndex(lpszFileName, FALSE, FALSE);
CString strSize;
CFileFind filefind;
// get file size
if (filefind.FindFile(lpszFileName))
{
filefind.FindNextFile();
strSize.Format("%d", filefind.GetLength());
}
else
strSize = "0";
// split path and filename
CString strFileName = lpszFileName;
CString strPath;
int nPos = strFileName.ReverseFind('\\');
if (nPos != -1)
{
strPath = strFileName.Left(nPos);
strFileName = strFileName.Mid(nPos + 1);
}
// insert to list
int nItem = m_list.GetItemCount();
m_list.InsertItem(nItem, strFileName, nIcon);
m_list.SetItemText(nItem, 1, strSize);
m_list.SetItemText(nItem, 2, strFileName.Right(3));
m_list.SetItemText(nItem, 3, strPath);
}
int CTest6Dlg::GetIconIndex(LPCTSTR lpszPath, BOOL bIsDir, BOOL bSelected)
{
SHFILEINFO sfi;
memset(&sfi, 0, sizeof(sfi));
if (bIsDir)
{
SHGetFileInfo(lpszPath,
FILE_ATTRIBUTE_DIRECTORY,
&sfi,
sizeof(sfi),
SHGFI_SMALLICON | SHGFI_SYSICONINDEX |
SHGFI_USEFILEATTRIBUTES |(bSelected ? SHGFI_OPENICON : 0));
return sfi.iIcon;
}
else
{
SHGetFileInfo (lpszPath,
FILE_ATTRIBUTE_NORMAL,
&sfi,
sizeof(sfi),
SHGFI_SMALLICON | SHGFI_SYSICONINDEX |
SHGFI_USEFILEATTRIBUTES | (bSelected ? SHGFI_OPENICON : 0));
return sfi.iIcon;
}
return -1;
}
22.listcttrlコンテンツがビッグデータ量更新を行う場合、点滅を避ける
m_list.SetRedraw(FALSE);
//
m_list.SetRedraw(TRUE);
m_list.Invalidate();
m_list.UpdateWindow();
または参照
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp
23.listcttrlソート
Q250614:How To Sort Items in a CListCtrl in Report View http://support.microsoft.com/kb/250614/en-us
24.listcttrlでitemを選択したときにiconまたはbitmap Q 141834:How to change the icon or the bitmap of a CListCtrl item in Visual C++を動的に変更
http://support.microsoft.com/kb/141834/en-us
25.itemを追加した後、InsertColumn()を追加すると、カラム全体が移動する問題
Q151897: CListCtrl::InsertColumn() Causes Column Data to Shift http://support.microsoft.com/kb/151897/en-us
26.listcttrlの最初の列が常に左にある問題について
解決策:第1列を虚列とし、第2列から列とデータを挿入し、最後に第1列を削除します.具体的な説明はhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/structures/lvcolumn.asp
27.column headerのドラッグをロックする
http://msdn.microsoft.com/msdnmag/issues/03/06/CQA/
28.clistctrlの列を非表示にする方法
非表示にする列の幅を0にし、その列が非表示になったときに、上の27点目のロックcolumnのドラッグで実現することを検出します.
29.listctcttrlビッグデータ量操作を行う場合はvirtual listを使用する
http://www.codeguru.com/cpp/controls/listview/advanced/article.php/c4151/ http://www.codeproject.com/listctrl/virtuallist.asp
30.itemが259文字しか表示できない問題について
解決策:itemにeditを置く必要があります.
31.listcttrlのcolumn headerのマウスの右クリックに応答する
Q125694: How To Find Out Which Listview Column Was Right-Clicked http://support.microsoft.com/kb/125694/en-us
32.Windowsエクスプローラに似たlistview
Q234310: How to implement a ListView control that is similar to Windows Explorer by using DirLV.exe http://support.microsoft.com/kb/234310/en-us
33.ListCtrlにおいてOnTimerが2回のみ応答する問題
Q200054:PRB: OnTimer() Is Not Called Repeatedly for a List Control http://support.microsoft.com/kb/200054/en-us
34.以下に、様々なカスタム機能を実現するためのlistcttrl派生クラスを示す.
(1)ドラッグ&ドロップhttp://www.codeproject.com/listctrl/dragtest.asp
CListCtrlとCTreeCtrlの間でドラッグ&ドロップhttp://support.microsoft.com/kb/148738/en-us(2)多機能listcttrlはsubitem編集可能、アイコン、radiobutton、checkbox、文字列変更色のクラスhttp://www.codeproject.com/listctrl/quicklist.aspソート対応、subitem編集可能、subitemアイコン、subitem変更色のクラスhttp://www.codeproject.com/listctrl/ReportControl.asp
(3)subitemにハイパーリンク表示http://www.codeproject.com/listctrl/CListCtrlLink.asp
(4)subitemのtooltipヒントhttp://www.codeproject.com/listctrl/ctooltiplistctrl.asp
(5)subitemに進捗バーが表示されるhttp://www.codeproject.com/listctrl/ProgressListControl.asphttp://www.codeproject.com/listctrl/napster.asphttp://www.codeguru.com/Cpp/controls/listview/article.php/c4187/
(6)subitemの色と背景色を動的に変えるhttp://www.codeproject.com/listctrl/highlightlistctrl.asphttp://www.codeguru.com/Cpp/controls/listbox/colorlistboxes/article.php/c4757/(7)クラスvbプロパティダイアログhttp://www.codeproject.com/listctrl/propertylistctrl.asphttp://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c995/http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c1041/(8)subitem(ハイライトされたitemのみ)を選択http://www.codeproject.com/listctrl/SubItemSel.asphttp://www.codeproject.com/listctrl/ListSubItSel.asp(9)行高変更http://www.codeproject.com/listctrl/changerowheight.asp(10)行色変更http://www.codeproject.com/listctrl/coloredlistctrl.asp(11)編集可能subitemのlistcttrlhttp://www.codeproject.com/listctrl/nirs2000.asphttp://www.codeproject.com/listctrl/editing_subitems_in_listcontrol.asp(12)subitem編集可能、combobox挿入、行色変更、subitemのtooltipプロンプトhttp://www.codeproject.com/listctrl/reusablelistcontrol.asp(13)ヘッダで複数行文字列許可http://www.codeproject.com/listctrl/headerctrlex.asp(14)combox挿入http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/(15)背景画像を追加http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c4173/http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c983/http://www.vchelp.net/vchelp/archive.asp?type_id=9&class_id=1&cata_id=1&article_id=1088&search_term=(16)適応幅のlistcttrlhttp://www.codeproject.com/useritems/AutosizeListCtrl.asp(17)
ListCtrlハイライトの色を変更します(デフォルトは青)
しょり
NM_CUSTOMDRAW