C++ 对列表视图排序(Win32/C+;+;)

C++ 对列表视图排序(Win32/C+;+;),c++,listview,winapi,C++,Listview,Winapi,我试图在用户单击列标题时对listview进行排序 我正在捕捉LVN_列单击通知,如下所示: case LVN_COLUMNCLICK: { NMLISTVIEW* pListView = (NMLISTVIEW*)lParam; BOOL test = ListView_SortItems ( m_hDuplicateObjectsList, ListViewCompareProc, pListView->iSubItem ); break

我试图在用户单击列标题时对listview进行排序

我正在捕捉LVN_列单击通知,如下所示:

  case LVN_COLUMNCLICK:
  {
     NMLISTVIEW*    pListView   = (NMLISTVIEW*)lParam;
     BOOL test = ListView_SortItems ( m_hDuplicateObjectsList, ListViewCompareProc, pListView->iSubItem );
     break;
  }
然而,它似乎失败了。我的测试变量为FALSE,并且我的ListViewCompareProc从未被命中(当我试图命中其中的调试点时,它有一个简单的返回1)


对列表视图进行排序时,我缺少什么吗?

您是否在控件上使用了
LVS\u OWNERDATA
样式

有许多功能与该样式不兼容,包括排序:


m_hDuplicateObjectsList的类型是什么?m_hDuplicateObjectList是我通过调用GetDlgItem(hWindow IDC_DUPLICATEOBJECTS)收到的HWND。它是有效的,因为我可以调用它上面的其他ListView方法。将“C++”限定为“Unmanaged”让我很难过。:'((我已经使用“Win32”作为标记/标题)来自
GetLastError
的任何结果?对于常见控件来说是典型的,但值得检查。谢谢。有一段时间一直在努力解决它。应该先尝试一下。从您的MSDN链接:
但是,当您使用LVS_OWNERDATA样式时,某些消息有限制或不受支持。
[…]不支持LVM\u SORTITEMS。应用程序负责按所需顺序显示项目。