Поделиться через


Класс CDragListBox

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Помимо предоставления функциональных возможностей поля списка Windows, CDragListBox класс позволяет пользователю перемещать элементы списка, такие как имена файлов, в поле списка.

Синтаксис

class CDragListBox : public CListBox

Участники

Открытые конструкторы

Имя Описание
CDragListBox::CDragListBox Формирует объект CDragListBox.

Открытые методы

Имя Описание
CDragListBox::BeginDrag Вызывается платформой при запуске операции перетаскивания.
CDragListBox::CancelDrag Вызывается платформой при отмене операции перетаскивания.
CDragListBox::D ragging Вызывается платформой во время операции перетаскивания.
CDragListBox::D rawInsert Рисует руководство по вставке поля списка перетаскивания.
CDragListBox::D ropped Вызывается платформой после удаления элемента.
CDragListBox::ItemFromPt Возвращает координаты перетаскиваемого элемента.

Замечания

Списки с этой возможностью позволяют пользователям упорядочивать элементы в списке любым способом, наиболее полезным для них. По умолчанию поле списка перемещает элемент в новое расположение в списке. CDragListBox Однако объекты можно настроить для копирования элементов вместо их перемещения.

Элемент управления списка, связанный с CDragListBox классом, не должен иметь LBS_SORT или стиль LBS_MULTIPLESELECT. Описание стилей списков см. в разделе "Стили списка".

Чтобы использовать поле списка перетаскивания в существующем диалоговом окне приложения, добавьте элемент управления списком в шаблон диалогового окна с помощью редактора диалогов, а затем назначьте переменную члена (категории Control и типа CDragListBoxпеременной), соответствующую элементу управления "Список" в шаблоне диалогового окна.

Дополнительные сведения о назначении элементов управления переменным-членам см. в разделе "Ярлык" для определения переменных-членов для элементов управления диалоговым окном.

Иерархия наследования

CObject

CCmdTarget

CWnd

CListBox

CDragListBox

Требования

Заголовок: afxcmn.h

CDragListBox::BeginDrag

Вызывается платформой, когда происходит событие, которое может начать операцию перетаскивания, например нажатие левой кнопки мыши.

virtual BOOL BeginDrag(CPoint pt);

Параметры

пт
Объект CPoint, содержащий координаты перетаскиваемого элемента.

Возвращаемое значение

Ненулевое значение, если разрешено перетаскивание, в противном случае — значение 0.

Замечания

Переопределите эту функцию, если вы хотите управлять тем, что происходит при запуске операции перетаскивания. Реализация по умолчанию фиксирует мышь и остается в режиме перетаскивания, пока пользователь не нажимает левую или правую кнопку мыши или нажимает ESC, в то время как операция перетаскивания отменяется.

CDragListBox::CancelDrag

Вызывается платформой при отмене операции перетаскивания.

virtual void CancelDrag(CPoint pt);

Параметры

пт
Объект CPoint, содержащий координаты перетаскиваемого элемента.

Замечания

Переопределите эту функцию, чтобы обрабатывать любую специальную обработку для элемента управления списком.

CDragListBox::CDragListBox

Формирует объект CDragListBox.

CDragListBox();

CDragListBox::D ragging

Вызывается платформой, когда элемент списка перетаскивается в CDragListBox объект.

virtual UINT Dragging(CPoint pt);

Параметры

пт
Объект CPoint, содержащий координаты экрана x и y курсора.

Возвращаемое значение

Идентификатор ресурса отображаемого курсора. Возможны следующие значения:

  • DL_COPYCURSOR Указывает, что элемент будет скопирован.

  • DL_MOVECURSOR Указывает, что элемент будет перемещен.

  • DL_STOPCURSOR Указывает, что текущий целевой объект удаления недопустим.

Замечания

Поведение по умолчанию возвращает DL_MOVECURSOR. Переопределите эту функцию, если вы хотите предоставить дополнительные функциональные возможности.

CDragListBox::D rawInsert

Вызывается платформой для рисования руководства по вставке перед элементом с указанным индексом.

virtual void DrawInsert(int nItem);

Параметры

nItem
Отсчитываемый от нуля индекс точки вставки.

Замечания

Значение - 1 очищает руководство по вставке. Переопределите эту функцию, чтобы изменить внешний вид или поведение руководства по вставке.

CDragListBox::D ropped

Вызывается платформой при удалении элемента в CDragListBox объекте.

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

Параметры

nSrcIndex
Задает отсчитываемый от нуля индекс удаленной строки.

пт
Объект CPoint, содержащий координаты сайта удаления.

Замечания

Поведение по умолчанию копирует элемент списка и его данные в новое расположение, а затем удаляет исходный элемент. Переопределите эту функцию, чтобы настроить поведение по умолчанию, например включение перетаскивания копий элементов списка в другие расположения в списке.

CDragListBox::ItemFromPt

Вызовите эту функцию, чтобы получить отсчитываемый от нуля индекс элемента списка, расположенный в pt.

int ItemFromPt(
    CPoint pt,
    BOOL bAutoScroll = TRUE) const;

Параметры

пт
Объект CPoint , содержащий координаты точки в списке.

bAutoScroll
Ненулевое значение, если прокрутка разрешена, в противном случае — значение 0.

Возвращаемое значение

Отсчитываемый от нуля индекс элемента списка перетаскивания.

См. также

Пример TSTCON MFC
Класс CListBox
Диаграмма иерархии
Класс CListBox