У меня есть список с включенным множественным выбором.Пользователь может получить множественный выбор, щелкая несколько элементов, одновременно нажимая клавиши Shift или Ctrl.Я пытаюсь реализовать множественный выбор, нажимая и удерживая левую кнопку мыши и перетаскивая элементы, чтобы выбрать их.
Я пытался ответить на LVN_MARQUEEBEGIN согласно документации Microsoft.Моя программа никогда не получает это сообщение.Документация не говорит, как ответить на это сообщение.
Вот пример моего кода:
static int Count ;
static int SelectedItem ;
case WM_NOTIFY :
switch ((reinterpret_cast <NMHDR *> (lParam))->code) {
case NM_CLICK:
#define pnmitem ((NMITEMACTIVATE *) lParam)
if (SelectedItem == pnmitem->iItem) { // item clicked again
SelectedItem = -1 ;
ListView_SetItemState (hwndListView,-1,0,0x000F) ;
} /* if (SelectedItem == pnmitem->iItem) */
else {
if (pnmitem->iItem != -1)
SelectedItem = pnmitem->iItem ;
} /* else */
Count = ListView_GetSelectedCount (hwndListView) ;
switch (Count) {
case 0 :
EnableWindow (hwndMerge,false) ;
EnableWindow (hwndSplit,false) ;
break ;
case 1 :
EnableWindow (hwndMerge,false) ;
EnableWindow (hwndSplit,true) ;
break ;
default :
EnableWindow (hwndMerge,true) ;
EnableWindow (hwndSplit,true) ;
} /* switch (Count) */
return true ;
case LVN_MARQUEEBEGIN :
;
;
return 0 ;
} /* switch ((reinterpret_cast <NMHDR *> (lParam))->code) */
break ;
- Является ли LVN_MARQUEEBEGIN правильным сообщением для моего случая.
- Мне кажется, должно быть другое сообщение, когда выбор сделан.Или почему Microsoft назвала это xxxbegin.Но я не смог найти это другое сообщение.
- Может кто-нибудь посоветовать мне, где я могу найти пример или пример кода для использования LVN_MARQUEEBEGIN.
Спасибо всем