2012-05-12 2 views
0

я добавил стиль LVS_EX_HEADERDRAGDROP, который позволяет пользователям перетаскивать столбцы вокруг:MFC CLisCtrl: Как получить уведомление, когда пользователь переупорядочивает столбцы?

myListControl_.SetView(LVS_REPORT); 
myListControl_.SetExtendedStyle(LVS_EX_HEADERDRAGDROP); 

Это работает нормально. Однако как мне получить уведомление, когда пользователь изменил порядок столбцов, чтобы сохранить новый порядок?

ответ

2
ON_NOTIFY_EX(HDN_ENDDRAG, 0, OnHeaderEndDragMethod) 

Header_GetOrderArray

+0

На самом деле оказывается, есть проблема с этим, потому что в обработчике этого события новый порядок столбец не появляется, чтобы быть доступны еще через 'GetColumnOrderArray' – User

+1

DL проект от [код проекта : CListCtrl, который может показывать и скрывать столбцы] (http://www.codeproject.com/Articles/28787/CListCtrl-Which-Can-Show-and-Hide-Columns). Если вы вникаете в метод CListCtrl_Column_Picker :: OnHeaderEndDrag, вы увидите, что pNMH-> pitem-> iOrder дает вам новый номер позиции перетаскиваемого столбца. Добавьте прослушиватель событий для HDN_BEGINDRAG, чтобы получить исходную позицию столбца, и оттуда вы можете получить изменение в порядках столбцов. – WithMetta

Смежные вопросы

 Смежные вопросы