Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi MFC CLisCtrl:当用户对列重新排序时,如何获得通知?_Winapi_Visual C++_Mfc - Fatal编程技术网

Winapi MFC CLisCtrl:当用户对列重新排序时,如何获得通知?

Winapi MFC CLisCtrl:当用户对列重新排序时,如何获得通知?,winapi,visual-c++,mfc,Winapi,Visual C++,Mfc,我添加了LVS_EX_HEADERDRAGDROP样式,允许用户拖动列: myListControl_.SetView(LVS_REPORT); myListControl_.SetExtendedStyle(LVS_EX_HEADERDRAGDROP); 这很好用。但是,当用户对列重新排序时,如何得到通知,以便保存新的排序 ON_NOTIFY_EX(HDN_ENDDRAG, 0, OnHeaderEndDragMethod) 事实证明这是一个问题,因为在该事件的处理程序中,新的列顺序似乎还

我添加了LVS_EX_HEADERDRAGDROP样式,允许用户拖动列:

myListControl_.SetView(LVS_REPORT);
myListControl_.SetExtendedStyle(LVS_EX_HEADERDRAGDROP);
这很好用。但是,当用户对列重新排序时,如何得到通知,以便保存新的排序

ON_NOTIFY_EX(HDN_ENDDRAG, 0, OnHeaderEndDragMethod)

事实证明这是一个问题,因为在该事件的处理程序中,新的列顺序似乎还不能通过
GetColumnOrderArray
DL从项目中获得。如果深入研究CListCtrl\u Column\u Picker::onheaderndrag方法,您将看到pNMH->pitem->iOrder为您提供了被拖动的列的新位置号。为HDN_BEGINDRAG添加一个事件监听器,以获取列的原始位置,从那里可以获得列顺序的更改。