Drag & Drop-Operationen für das Struktursteuerelement
Eine Strukturansicht (CTreeCtrl) sendet eine Benachrichtigung wenn der Benutzer beginnt, per ein Element ziehen. Das Steuerelement sendet eine Benachrichtigung TVN_BEGINDRAG, wenn der Benutzer beginnt, ein Element mit der linken Maustaste und eine Benachrichtigung TVN_BEGINRDRAG ziehen, wenn der Benutzer das Ziehen mit der rechten Schaltfläche gestartet wird. Sie können eine Strukturansicht am Senden dieser Benachrichtigungen verhindern, indem Sie dem TVS_DISABLEDRAGDROP-Strukturansicht das Format geben.
Sie erhalten ein Bild, die während eines Ziehvorgangs anzuzeigen, indem Sie die Memberfunktion CreateDragImage aufrufen. Das Tree-Steuerelement erstellt eine ziehende Bitmap auf der Bezeichnung des Elements, das gezogen wird. Dann erstellt das Struktursteuerelement Bildlisten, fügt der Bitmap hinzu und gibt einen Zeiger auf das CImageList-Objekt zurück.
Sie müssen den Code bereitstellen, der tatsächlich das Element gezogen werden. Dies umfasst normalerweise ziehenden, die Funktionen der Bildlistenfunktionen mit ein und die gesendeten WM_MOUSEMOVE und WM_LBUTTONUP (oder WM_RBUTTONUP) Nachrichten verarbeiten, nachdem der Ziehvorgang gestartet wurde. Weitere Informationen über die Bildlistenfunktionen, finden Sie unter CImageList in der MFC-Referenz und Grafiklisten in Windows SDK. Weitere Informationen zum das Ziehen eines Strukturansicht-Steuerelement-Elements, finden Sie unter Ziehen des Strukturansichtelements, in Windows SDK.
Wenn sich Elemente in einer Strukturansicht, die Ziele eines Drag & Drop-Vorgangs sein sollen, müssen Sie wissen, dass der Mauszeiger auf einem Zielelement ist. Sie können ermitteln, indem Sie die Memberfunktion HitTest aufrufen. Sie entweder einem Punkt und ganzzahligen oder der Adresse TVHITTESTINFO einer Struktur an, die die aktuellen Koordinaten des Mauszeigers enthält. Wenn die Funktion beendet wird, enthält die gesamte Zahl oder Struktur ein Flag, die Position des Mauszeigers relativ zum Strukturansicht angibt. Wenn der Cursor über ein Element in der Strukturansicht ist, enthält die Struktur das Handle des Elements auch.
Sie können angeben, dass ein Element das Ziel eines Drag & Drop-Vorgangs ist, indem die SetItem-Memberfunktion aufruft, um den Zustand auf den Wert TVIS_DROPHILITED festzulegen. Ein Element, das den Zustand hat, wird im Format gezeichnet, das verwendet wird, um einem Drag & Drop-Ziel anzugeben.