Freigeben über


Drag & Drop-Operationen für das Struktursteuerelement

Ein Struktur-Steuerelement (CTreeCtrl) sendet eine Benachrichtigung, wenn der Benutzer beginnt, ein Element zu ziehen. Das Steuerelement sendet eine TVN_BEGINDRAG Benachrichtigung, wenn der Benutzer mit dem Ziehen eines Elements mit der linken Maustaste und einer TVN_BEGINRDRAG Benachrichtigung beginnt, wenn der Benutzer mit dem Ziehen mit der rechten Schaltfläche beginnt. Sie können verhindern, dass ein Baumsteuerelement diese Benachrichtigungen sendet, indem Sie dem Baumsteuerelement den TVS_DISABLEDRAGDROP-Stil zuweisen.

Sie erhalten ein Bild, das während eines Ziehvorgangs angezeigt werden soll, indem Sie die CreateDragImage-Memberfunktion aufrufen. Das Struktursteuerelement erstellt eine Bitmap für das Ziehen auf der Grundlage der Beschriftung des gezogenen Objekts. Anschließend erstellt das Struktursteuerelement eine Bildliste, fügt die Bitmap hinzu und gibt einen Zeiger auf das CImageList -Objekt zurück.

Sie müssen den Code angeben, der das Element tatsächlich verschiebt. Dies umfasst in der Regel die Verwendung der Ziehfunktionen der Bildlistenfunktionen und die Verarbeitung der WM_MOUSEMOVE und WM_LBUTTONUP (oder WM_RBUTTONUP) Nachrichten, die nach dem Starten des Ziehvorgangs gesendet wurden. Weitere Informationen zu den Bildlistenfunktionen finden Sie unter CImageList in der MFC-Referenz und Bildlisten im Windows SDK. Weitere Informationen zum Ziehen eines Baumsteuerelements finden Sie unter Ziehen des Baumansichtselements, ebenfalls im Windows SDK.

Wenn Elemente in einem Struktur-Steuerlement das Ziel eines Drag&Drop-Vorgangs sein sollen, müssen Sie wissen, wann sich der Mauszeiger auf einem Zielelement befindet. Sie können herausfinden, indem Sie die HitTest-Memberfunktion aufrufen. Sie geben entweder einen Punkt und eine ganze Zahl oder die Adresse einer TVHITTESTINFO-Struktur an, die die aktuellen Koordinaten des Mauszeigers enthält. Wenn die Funktion zurückgibt, enthält die Ganzzahl oder Struktur ein Flag, das die Position des Mauscursors relativ zum Struktursteuerlement angibt. Wenn sich der Cursor über einem Element in der Struktursteuerung befindet, enthält die Struktur auch das Handle des Elements.

Sie können angeben, dass ein Element das Ziel eines Drag-and-Drop-Vorgangs ist, indem Sie die SetItem-Memberfunktion aufrufen, um den Zustand auf den TVIS_DROPHILITED Wert festzulegen. Ein Element, das diesen Status hat, wird in dem Stil gezeichnet, der zum Anzeigen eines Drag-and-Drop-Ziels verwendet wird.

Siehe auch

Verwenden von CTreeCtrl
Steuerung