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