CListCtrl& list = this->GetListCtrl(); Item1 mItem;
mItem.mlist = &list;
mItem.Isub = pNMListView->iSubItem;
TRACE("%d", list.GetItemCount());
for(int i=0; i<list.GetItemCount(); i++)//list.GetItemCount()有值
{
list.SetItemData(i,i);//这边出错
}
单步按重试,跳到
BOOL CListCtrl::SetItem(int nItem, int nSubItem, UINT nMask, LPCTSTR lpszItem,
int nImage, UINT nState, UINT nStateMask, LPARAM lParam)
{
ASSERT(::IsWindow(m_hWnd));
ASSERT((GetStyle() & LVS_OWNERDATA)==0);
LVITEM lvi;
lvi.mask = nMask;
lvi.iItem = nItem;
lvi.iSubItem = nSubItem;
lvi.stateMask = nStateMask;
lvi.state = nState;
lvi.pszText = (LPTSTR) lpszItem;
lvi.iImage = nImage;
lvi.lParam = lParam;
return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEM, 0, (LPARAM)&lvi);
}LVS_OWNERDATA不为0
mItem.mlist = &list;
mItem.Isub = pNMListView->iSubItem;
TRACE("%d", list.GetItemCount());
for(int i=0; i<list.GetItemCount(); i++)//list.GetItemCount()有值
{
list.SetItemData(i,i);//这边出错
}
单步按重试,跳到
BOOL CListCtrl::SetItem(int nItem, int nSubItem, UINT nMask, LPCTSTR lpszItem,
int nImage, UINT nState, UINT nStateMask, LPARAM lParam)
{
ASSERT(::IsWindow(m_hWnd));
ASSERT((GetStyle() & LVS_OWNERDATA)==0);
LVITEM lvi;
lvi.mask = nMask;
lvi.iItem = nItem;
lvi.iSubItem = nSubItem;
lvi.stateMask = nStateMask;
lvi.state = nState;
lvi.pszText = (LPTSTR) lpszItem;
lvi.iImage = nImage;
lvi.lParam = lParam;
return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEM, 0, (LPARAM)&lvi);
}LVS_OWNERDATA不为0
BOOL CItemView::PreCreateWindow(CREATESTRUCT& cs)
{
// Perform default processing. Return FALSE if failure:
if (!CListView::PreCreateWindow (cs))
return (FALSE); // Modify window sytle:
// First clear icon view, small icon view, and list view bits.
// Then set report view and owner data bits.
// (Owner data transfers the responsibility of managing data from the
// list control to the application programmer. This allows very large
// data sets to be handled efficiently. See MSDN discussion of Virtual
// List-View Style.)
cs.style &= ~(LVS_ICON | LVS_SMALLICON | LVS_LIST);
cs.style |= (LVS_REPORT | LVS_OWNERDATA); // Return TRUE to indicate success:
return (TRUE);
}那象这种虚拟的,怎么实现按一下listctrl头,实现内容排序?
http://www.codeproject.com/KB/list/clistctrl_sort.aspx