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
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