Freigeben über


CDragListBox-Klasse

Zusätzlich zur Bereitstellung der Funktionalität eines Windows-Listenfelds ermöglicht die CDragListBox Klasse dem Benutzer das Verschieben von Listenfeldelementen, z. B. Dateinamen, innerhalb des Listenfelds.

Syntax

class CDragListBox : public CListBox

Member

Öffentliche Konstruktoren

Name Beschreibung
CDragListBox::CDragListBox Erstellt ein CDragListBox-Objekt.

Öffentliche Methoden

Name Beschreibung
CDragListBox::BeginDrag Wird vom Framework aufgerufen, wenn ein Ziehvorgang gestartet wird.
CDragListBox::CancelDrag Wird vom Framework aufgerufen, wenn ein Ziehvorgang abgebrochen wurde.
CDragListBox::D ragging Wird während eines Ziehvorgangs vom Framework aufgerufen.
CDragListBox::D rawInsert Zeichnet die Einfügeführungslinie des Listenfelds für das Ziehen.
CDragListBox::D ropped Wird vom Framework aufgerufen, nachdem das Element gelöscht wurde.
CDragListBox::ItemFromPt Gibt die Koordinaten des Elements zurück, das gezogen wird.

Hinweise

Listenfelder mit dieser Funktion ermöglichen Es Benutzern, die Elemente in einer Liste in beliebiger Weise zu sortieren, was für sie am nützlichsten ist. Standardmäßig wird das Element im Listenfeld an die neue Position in der Liste verschoben. Objekte können jedoch so angepasst werden, CDragListBox dass Elemente kopiert werden, anstatt sie zu verschieben.

Das listenfeld-Steuerelement, das der CDragListBox Klasse zugeordnet ist, darf nicht über das LBS_SORT oder die LBS_MULTIPLESELECT Formatvorlage verfügen. Eine Beschreibung der Listenfeldformatvorlagen finden Sie unter List-Box Styles.

Wenn Sie ein Listenfeld für das Ziehen in einem vorhandenen Dialogfeld Ihrer Anwendung verwenden möchten, fügen Sie Ihrer Dialogfeldvorlage mithilfe des Dialogfeld-Editors ein Listenfeld-Steuerelement hinzu, und weisen Sie dann der Dialogfeldvorlage eine Membervariable (der Kategorie Control und des Variablentyps CDragListBox) zu, die dem Listenfeld-Steuerelement in Ihrer Dialogfeldvorlage entspricht.

Weitere Informationen zum Zuweisen von Steuerelementen zu Membervariablen finden Sie unter Shortcut for Defining Member Variables for Dialog Controls.

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CListBox

CDragListBox

Anforderungen

Header: afxcmn.h

CDragListBox::BeginDrag

Wird vom Framework aufgerufen, wenn ein Ereignis auftritt, das einen Ziehvorgang starten kann, z. B. das Drücken der linken Maustaste.

virtual BOOL BeginDrag(CPoint pt);

Parameter

pt
Ein CPoint-Objekt, das die Koordinaten des gezogenen Elements enthält.

Rückgabewert

Nonzero, wenn das Ziehen zulässig ist, andernfalls 0.

Hinweise

Überschreiben Sie diese Funktion, wenn Sie steuern möchten, was passiert, wenn ein Ziehvorgang beginnt. Die Standardimplementierung erfasst die Maus und bleibt im Ziehmodus, bis der Benutzer auf die linke oder rechte Maustaste klickt oder ESC drückt, zu dem zeitpunkt der Ziehvorgang abgebrochen wird.

CDragListBox::CancelDrag

Wird vom Framework aufgerufen, wenn ein Ziehvorgang abgebrochen wurde.

virtual void CancelDrag(CPoint pt);

Parameter

pt
Ein CPoint-Objekt, das die Koordinaten des gezogenen Elements enthält.

Hinweise

Überschreiben Sie diese Funktion, um eine spezielle Verarbeitung für Ihr Listenfeld-Steuerelement zu verarbeiten.

CDragListBox::CDragListBox

Erstellt ein CDragListBox-Objekt.

CDragListBox();

CDragListBox::D ragging

Wird vom Framework aufgerufen, wenn ein Listenfeldelement innerhalb des CDragListBox Objekts gezogen wird.

virtual UINT Dragging(CPoint pt);

Parameter

pt
Ein CPoint-Objekt , das die X- und Y-Bildschirmkoordinaten des Cursors enthält.

Rückgabewert

Die Ressourcen-ID des anzuzeigenden Cursors. Folgende Werte sind möglich:

  • DL_COPYCURSOR Gibt an, dass das Element kopiert wird.

  • DL_MOVECURSOR Gibt an, dass das Element verschoben wird.

  • DL_STOPCURSOR Gibt an, dass das aktuelle Drop-Ziel nicht akzeptabel ist.

Hinweise

Das Standardverhalten gibt DL_MOVECURSOR zurück. Überschreiben Sie diese Funktion, wenn Sie zusätzliche Funktionen bereitstellen möchten.

CDragListBox::D rawInsert

Wird vom Framework aufgerufen, um die Einfügeanleitung vor dem Element mit dem angegebenen Index zu zeichnen.

virtual void DrawInsert(int nItem);

Parameter

nItem
Nullbasierter Index der Einfügemarke.

Hinweise

Der Wert - 1 löscht die Einfügeführung. Überschreiben Sie diese Funktion, um die Darstellung oder das Verhalten der Einfügeanleitung zu ändern.

CDragListBox::D ropped

Wird vom Framework aufgerufen, wenn ein Element innerhalb eines CDragListBox Objekts abgelegt wird.

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

Parameter

nSrcIndex
Gibt den nullbasierten Index der verworfenen Zeichenfolge an.

pt
Ein CPoint-Objekt , das die Koordinaten der Dropwebsite enthält.

Hinweise

Das Standardverhalten kopiert das Listenfeldelement und die zugehörigen Daten an den neuen Speicherort und löscht dann das ursprüngliche Element. Überschreiben Sie diese Funktion, um das Standardverhalten anzupassen, z. B. das Aktivieren von Kopien von Listenfeldelementen, die an andere Speicherorte innerhalb der Liste gezogen werden sollen.

CDragListBox::ItemFromPt

Rufen Sie diese Funktion auf, um den nullbasierten Index des Listenfeldelements abzurufen, das sich auf pt befindet.

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

Parameter

pt
Ein CPoint-Objekt , das die Koordinaten eines Punkts innerhalb des Listenfelds enthält.

bAutoScroll
Nonzero, wenn bildlauf zulässig ist, andernfalls 0.

Rückgabewert

Nullbasierter Index des Listenfeldelements für das Ziehen.

Siehe auch

MFC-Beispiel-TSTCON
CListBox-Klasse
Hierarchiediagramm
CListBox-Klasse