Udostępnij za pośrednictwem


Klasa CDragListBox

Oprócz zapewnienia funkcjonalności pola CDragListBox listy systemu Windows klasa umożliwia użytkownikowi przenoszenie elementów pól listy, takich jak nazwy plików, w polu listy.

Składnia

class CDragListBox : public CListBox

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CDragListBox::CDragListBox CDragListBox Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CDragListBox::BeginDrag Wywoływana przez platformę podczas uruchamiania operacji przeciągania.
CDragListBox::CancelDrag Wywoływana przez platformę, gdy operacja przeciągania została anulowana.
CDragListBox::D ragging Wywoływana przez platformę podczas operacji przeciągania.
CDragListBox::D rawInsert Rysuje prowadnicę wstawiania pola listy przeciągania.
CDragListBox::D ropped Wywoływana przez strukturę po upuszczonym elemencie.
CDragListBox::ItemFromPt Zwraca współrzędne przeciągniętego elementu.

Uwagi

Pola listy z tą funkcją umożliwiają użytkownikom porządkowenie elementów na liście w dowolny sposób, co jest dla nich najbardziej przydatne. Domyślnie pole listy spowoduje przeniesienie elementu do nowej lokalizacji na liście. Można jednak dostosować obiekty do CDragListBox kopiowania elementów zamiast ich przenoszenia.

Kontrolka pola listy skojarzona z klasą CDragListBox nie może mieć LBS_SORT ani stylu LBS_MULTIPLESELECT. Opis stylów pól listy znajduje się w temacie List-Box Styles (Style pól listy).

Aby użyć przeciągania listy w istniejącym oknie dialogowym aplikacji, dodaj kontrolkę pola listy do szablonu okna dialogowego przy użyciu edytora okien dialogowych, a następnie przypisz zmienną składową (kategoria Control i typ CDragListBoxzmiennej) odpowiadającą kontrolce pola listy w szablonie okna dialogowego.

Aby uzyskać więcej informacji na temat przypisywania kontrolek do zmiennych składowych, zobacz Skrót do definiowania zmiennych składowych dla kontrolek okien dialogowych.

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWnd

CListBox

CDragListBox

Wymagania

Nagłówek: afxcmn.h

CDragListBox::BeginDrag

Wywoływana przez platformę, gdy wystąpi zdarzenie, które może rozpocząć operację przeciągania, na przykład naciśnięcie lewego przycisku myszy.

virtual BOOL BeginDrag(CPoint pt);

Parametry

Pt
Obiekt CPoint zawierający współrzędne przeciągniętego elementu.

Wartość zwracana

Bezzerowe, jeśli przeciąganie jest dozwolone, w przeciwnym razie 0.

Uwagi

Zastąpi tę funkcję, jeśli chcesz kontrolować, co się stanie po rozpoczęciu operacji przeciągania. Domyślna implementacja przechwytuje mysz i pozostaje w trybie przeciągania, aż użytkownik kliknie lewy lub prawy przycisk myszy lub naciśnie ESC, w którym czasie operacja przeciągania zostanie anulowana.

CDragListBox::CancelDrag

Wywoływana przez platformę, gdy operacja przeciągania została anulowana.

virtual void CancelDrag(CPoint pt);

Parametry

Pt
Obiekt CPoint zawierający współrzędne przeciągniętego elementu.

Uwagi

Zastąpi tę funkcję, aby obsłużyć dowolne specjalne przetwarzanie kontrolki pola listy.

CDragListBox::CDragListBox

CDragListBox Tworzy obiekt.

CDragListBox();

CDragListBox::D ragging

Wywoływana przez platformę, gdy element pola listy jest przeciągany w CDragListBox obiekcie.

virtual UINT Dragging(CPoint pt);

Parametry

Pt
Obiekt CPoint zawierający współrzędne ekranu x i y kursora.

Wartość zwracana

Identyfikator zasobu kursora do wyświetlenia. Możliwe są następujące wartości:

  • DL_COPYCURSOR Wskazuje, że element zostanie skopiowany.

  • DL_MOVECURSOR Wskazuje, że element zostanie przeniesiony.

  • DL_STOPCURSOR Wskazuje, że bieżący cel upuszczania nie jest akceptowalny.

Uwagi

Domyślne zachowanie zwraca DL_MOVECURSOR. Zastąpi tę funkcję, jeśli chcesz udostępnić dodatkowe funkcje.

CDragListBox::D rawInsert

Wywołana przez strukturę w celu narysowania przewodnika wstawiania przed elementem ze wskazanym indeksem.

virtual void DrawInsert(int nItem);

Parametry

nItem
Indeks zerowy punktu wstawiania.

Uwagi

Wartość — 1 czyści przewodnik wstawiania. Zastąpij tę funkcję, aby zmodyfikować wygląd lub zachowanie przewodnika wstawiania.

CDragListBox::D ropped

Wywoływana przez strukturę, gdy element jest porzucany w CDragListBox obiekcie.

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

Parametry

nSrcIndex
Określa indeks zerowy porzuconego ciągu.

Pt
Obiekt CPoint zawierający współrzędne lokacji upuszczania.

Uwagi

Domyślne zachowanie kopiuje element pola listy i jego dane do nowej lokalizacji, a następnie usuwa oryginalny element. Zastąpij tę funkcję, aby dostosować zachowanie domyślne, takie jak włączenie przeciągania kopii elementów pola listy do innych lokalizacji na liście.

CDragListBox::ItemFromPt

Wywołaj tę funkcję, aby pobrać indeks na podstawie zera elementu pola listy znajdujący się w pkt.

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

Parametry

Pt
Obiekt CPoint zawierający współrzędne punktu w polu listy.

bAutoScroll
Niezerowe, jeśli przewijanie jest dozwolone, w przeciwnym razie 0.

Wartość zwracana

Indeks zerowy elementu pola listy przeciągania.

Zobacz też

Przykład MFC — TSTCON
Klasa CListBox
Wykres hierarchii
Klasa CListBox