EDN Admin
Well-known member
I have a ListView control in my simple which have one group, I want to set the items group id dynamic, but I never receive LVIF_GROUPID notify in LVN_GETDISPINFO. Its work properly in Win7, So how to fix this issue? below is the code
snap
<span style="white-space
re m_ListCtrl.SetImageList(&m_ImgList, LVSIL_SMALL);
<span style="white-space
re VERIFY(m_ListCtrl.EnableGroupView(TRUE) == 1);
<span style="white-space
re CString wstrGroupName(_T("Running"));
<span style="white-space
re LVGROUP lvg;
<span style="white-space
re ZeroMemory(&lvg, sizeof(lvg));
<span style="white-space
re lvg.cbSize = sizeof(lvg);
<span style="white-space
re lvg.mask = LVGF_HEADER | LVGF_GROUPID | LVGF_ALIGN;
<span style="white-space
re lvg.pszHeader = wstrGroupName.GetBuffer();
<span style="white-space
re lvg.cchHeader = (int)wcslen(lvg.pszHeader);
<span style="white-space
re lvg.iGroupId = 1;
<span style="white-space
re lvg.uAlign = LVGA_HEADER_CENTER;
<span style="white-space
re VERIFY(m_ListCtrl.InsertGroup(-1, &lvg) > -1);
<span style="white-space
re
<span style="white-space
re // Insert column(s) (only needed for report view)
<span style="white-space
re m_ListCtrl.InsertColumn(0, _T("Item Name"), LVCFMT_LEFT, 26);
<span style="white-space
re m_ListCtrl.InsertColumn(1, _T("Item Context"), LVCFMT_LEFT, 160);
<span style="white-space
re // Insert items
<span style="white-space
re for (int i=1; i<=20; i++)
<span style="white-space
re {
<span style="white-space
re // Set item group ID
<span style="white-space
re LVITEM lvi;
<span style="white-space
re ZeroMemory(&lvi, sizeof(lvi));
<span style="white-space
re
<span style="white-space
re lvi.mask = LVIF_GROUPID | LVIF_IMAGE ;
<span style="white-space
re lvi.iImage = i % 2 == 0 ? I_IMAGENONE : 0;
<span style="white-space
re lvi.iGroupId = I_GROUPIDCALLBACK;
<span style="white-space
re lvi.iItem = i ;
<span style="white-space
re int iItem = m_ListCtrl.InsertItem(&lvi);
<span style="white-space
re
<span style="white-space
re ZeroMemory(&lvi, sizeof(lvi));
<span style="white-space
re CString strMsg;
<span style="white-space
re if (i % 2 == 0)
<span style="white-space
re {
<span style="white-space
re strMsg.Format(_T("My Sub-Item(%d)"), i / 2);
<span style="white-space
re lvi.mask = LVIF_IMAGE | LVIF_TEXT;
<span style="white-space
re }
<span style="white-space
re else
<span style="white-space
re {
<span style="white-space
re lvi.mask = LVIF_TEXT ;
<span style="white-space
re strMsg.Format(_T("My Item(%d)"), i / 2 + 1);
<span style="white-space
re }
<span style="white-space
re lvi.iImage = 1;
<span style="white-space
re lvi.pszText = strMsg.GetBuffer();
<span style="white-space
re lvi.cchTextMax = strMsg.GetLength();
<span style="white-space
re lvi.iItem = iItem;
<span style="white-space
re lvi.iSubItem = 1;
<span style="white-space
re ASSERT(m_ListCtrl.SetItem(&lvi));
<span style="white-space
re }
void CLstDlg::OnLvnGetdispinfoJobs(NMHDR *pNMHDR, LRESULT *pResult)
{
<span style="white-space
re NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
<span style="white-space
re if (pDispInfo->item.mask & LVIF_GROUPID)
<span style="white-space
re {
<span style="white-space
re //Never run here? strange, work OK on Win7
<span style="white-space
re pDispInfo->item.iGroupId = 1;
<span style="white-space
re }
<span style="white-space
re *pResult = 0;
}
Thanks
View the full article
snap
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

void CLstDlg::OnLvnGetdispinfoJobs(NMHDR *pNMHDR, LRESULT *pResult)
{
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

}
Thanks
View the full article