Condividi tramite


Classe COleDropSource

Consente di trascinare i dati in una destinazione di rilascio.

Sintassi

class COleDropSource : public CCmdTarget

Membri

Costruttori pubblici

Nome Descrizione
COleDropSource::COleDropSource Costruisce un oggetto COleDropSource.

Metodi pubblici

Nome Descrizione
COleDropSource::GiveFeedback Modifica il cursore durante un'operazione di trascinamento della selezione.
COleDropSource::OnBeginDrag Gestisce l'acquisizione del mouse durante un'operazione di trascinamento della selezione.
COleDropSource::QueryContinueDrag Verifica se il trascinamento deve continuare.

Osservazioni:

La classe COleDropTarget gestisce la parte ricevente dell'operazione di trascinamento della selezione. L'oggetto COleDropSource è responsabile della determinazione dell'inizio di un'operazione di trascinamento, del feedback durante l'operazione di trascinamento e della determinazione del termine dell'operazione di trascinamento.

Per usare un COleDropSource oggetto, è sufficiente chiamare il costruttore . Questo semplifica il processo di determinazione degli eventi, ad esempio un clic del mouse, avvia un'operazione di trascinamento usando COleDataSource::D oDragDrop, COleClientItem::D oDragDrop o la funzione COleServerItem::D oDragDrop . Queste funzioni creeranno automaticamente un COleDropSource oggetto. È possibile modificare il comportamento predefinito delle COleDropSource funzioni sostituibili. Queste funzioni membro verranno chiamate nei momenti appropriati dal framework.

Per altre informazioni sulle operazioni di trascinamento della selezione tramite OLE, vedere l'articolo Trascinamento e rilascio OLE.

Per altre informazioni, vedere IDropSource in Windows SDK.

Gerarchia di ereditarietà

CObject

CCmdTarget

COleDropSource

Requisiti

Intestazione: afxole.h

COleDropSource::COleDropSource

Costruisce un oggetto COleDropSource.

COleDropSource();

COleDropSource::GiveFeedback

Chiamato dal framework dopo aver chiamato COleDropTarget::OnDragOver o COleDropTarget::D ragEnter.

virtual SCODE GiveFeedback(DROPEFFECT dropEffect);

Parametri

dropEffect
L'effetto che si vuole visualizzare all'utente, in genere indica cosa accadrebbe se si verificasse un calo in questo punto con i dati selezionati. In genere, questo è il valore restituito dalla chiamata più recente a CView::OnDragEnter o CView::OnDragOver. Può trattarsi di uno o più dei seguenti elementi:

  • DROPEFFECT_NONE Un drop non è consentito.

  • DROPEFFECT_COPY verrà eseguita un'operazione di copia.

  • DROPEFFECT_MOVE Verrà eseguita un'operazione di spostamento.

  • DROPEFFECT_LINK viene stabilito un collegamento dai dati eliminati ai dati originali.

  • DROPEFFECT_SCROLL Un'operazione di trascinamento dello scorrimento sta per verificarsi o si verifica nella destinazione.

Valore restituito

Restituisce DRAGDROP_S_Uedizione Standard DEFAULTCURSORS se il trascinamento è in corso, NOERROR in caso contrario.

Osservazioni:

Eseguire l'override di questa funzione per fornire feedback all'utente su cosa accadrebbe se si verificasse un calo a questo punto. L'implementazione predefinita usa i cursori PREDEFINITI OLE. Per altre informazioni sulle operazioni di trascinamento della selezione tramite OLE, vedere l'articolo Trascinamento e rilascio OLE.

Per altre informazioni, vedere IDropSource::GiveFeedback, IDropTarget::D ragOver e IDropTarget::D ragEnter in Windows SDK.

COleDropSource::OnBeginDrag

Chiamato dal framework quando si verifica un evento che potrebbe avviare un'operazione di trascinamento, ad esempio premendo il pulsante sinistro del mouse.

virtual BOOL OnBeginDrag(CWnd* pWnd);

Parametri

pWnd
Punta alla finestra contenente i dati selezionati.

Valore restituito

Diverso da zero se il trascinamento è consentito; in caso contrario, 0.

Osservazioni:

Eseguire l'override di questa funzione se si desidera modificare la modalità di avvio del processo di trascinamento. L'implementazione predefinita acquisisce il mouse e rimane in modalità di trascinamento finché l'utente non fa clic sul pulsante sinistro o destro del mouse o colpisce ESC, quando rilascia il mouse.

COleDropSource::QueryContinueDrag

Dopo l'avvio del trascinamento, questa funzione viene chiamata ripetutamente dal framework fino a quando l'operazione di trascinamento non viene annullata o completata.

virtual SCODE QueryContinueDrag(
    BOOL bEscapePressed,
    DWORD dwKeyState);

Parametri

bEscapePressed
Indica se il tasto ESC è stato premuto dall'ultima chiamata a COleDropSource::QueryContinueDrag.

dwKeyState
Contiene lo stato dei tasti di modifica sulla tastiera. Si tratta di una combinazione di un numero qualsiasi di elementi seguenti: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON e MK_RBUTTON.

Valore restituito

DRAGDROP_S_CANCEL se viene premuto il tasto ESC o il pulsante destro o il pulsante sinistro viene generato prima dell'avvio del trascinamento. DRAGDROP_S_DROP se deve verificarsi un'operazione di rilascio. In caso contrario, S_OK.

Osservazioni:

Eseguire l'override di questa funzione se si desidera modificare il punto in cui il trascinamento viene annullato o si verifica un rilascio.

L'implementazione predefinita avvia la selezione o annulla il trascinamento come indicato di seguito. Annulla un'operazione di trascinamento quando viene premuto il tasto ESC o il pulsante destro del mouse. Avvia un'operazione di rilascio quando viene generato il pulsante sinistro del mouse dopo l'avvio del trascinamento. In caso contrario, restituisce S_OK e non esegue altre operazioni.

Poiché questa funzione viene chiamata di frequente, deve essere ottimizzata il più possibile.

Vedi anche

HIERSVR di esempio MFC
OCLIENT di esempio MFC
Classe CCmdTarget
Grafico della gerarchia