Classe COleDropTarget
Fornisce il meccanismo di comunicazione tra una finestra e le librerie OLE.
Sintassi
class COleDropTarget : public CCmdTarget
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
COleDropTarget::COleDropTarget | Costruisce un oggetto COleDropTarget . |
Metodi pubblici
Nome | Descrizione |
---|---|
COleDropTarget::OnDragenter | Chiamato quando il cursore entra per la prima volta nella finestra. |
COleDropTarget::OnDragLeave | Chiamato quando il cursore viene trascinato fuori dalla finestra. |
COleDropTarget::OnDragOver | Chiamato ripetutamente quando il cursore viene trascinato sulla finestra. |
COleDropTarget::OnDragScroll | Chiamato per determinare se il cursore viene trascinato nell'area di scorrimento della finestra. |
COleDropTarget::OnDrop | Chiamato quando i dati vengono eliminati nella finestra, gestore predefinito. |
COleDropTarget::OnDropEx | Chiamato quando i dati vengono eliminati nella finestra, gestore iniziale. |
COleDropTarget::Register | Registra la finestra come destinazione di rilascio valida. |
COleDropTarget::Revoke | Fa sì che la finestra smettesse di essere una destinazione di rilascio valida. |
Osservazioni:
La creazione di un oggetto di questa classe consente a una finestra di accettare i dati tramite il meccanismo di trascinamento della selezione OLE.
Per ottenere una finestra per accettare i comandi di rilascio, è prima necessario creare un oggetto della COleDropTarget
classe e quindi chiamare la funzione Register con un puntatore all'oggetto desiderato CWnd
come unico parametro.
Per altre informazioni sulle operazioni di trascinamento della selezione tramite OLE, vedere l'articolo Trascinamento e rilascio OLE.
Gerarchia di ereditarietà
COleDropTarget
Requisiti
Intestazione: afxole.h
COleDropTarget::COleDropTarget
Costruisce un oggetto della classe COleDropTarget
.
COleDropTarget();
Osservazioni:
Chiama Register per associare questo oggetto a una finestra.
COleDropTarget::OnDragenter
Chiamato dal framework quando il cursore viene prima trascinato nella finestra.
virtual DROPEFFECT OnDragEnter(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parametri
pWnd
Punta alla finestra in cui viene immesso il cursore.
pDataObject
Punta all'oggetto dati contenente i dati che è possibile eliminare.
dwKeyState
Contiene lo stato dei tasti di modifica. 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.
point
Contiene la posizione corrente del cursore nelle coordinate client.
Valore restituito
Effetto che potrebbe risultare se si tentasse un rilascio nella posizione specificata in base al punto. 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.
Osservazioni:
Eseguire l'override di questa funzione per consentire l'esecuzione delle operazioni di rilascio nella finestra. L'implementazione predefinita chiama CView::OnDragEnter, che restituisce semplicemente DROPEFFECT_NONE per impostazione predefinita.
Per altre informazioni, vedere IDropTarget::D ragEnter in Windows SDK.
COleDropTarget::OnDragLeave
Chiamato dal framework quando il cursore lascia la finestra mentre è attiva un'operazione di trascinamento.
virtual void OnDragLeave(CWnd* pWnd);
Parametri
pWnd
Punta alla finestra in cui il cursore viene lasciato.
Osservazioni:
Eseguire l'override di questa funzione se si desidera un comportamento speciale quando l'operazione di trascinamento lascia la finestra specificata. L'implementazione predefinita di questa funzione chiama CView::OnDragLeave.
Per altre informazioni, vedere IDropTarget::D ragLeave in Windows SDK.
COleDropTarget::OnDragOver
Chiamato dal framework quando il cursore viene trascinato sulla finestra.
virtual DROPEFFECT OnDragOver(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parametri
pWnd
Punta alla finestra su cui si trova il cursore.
pDataObject
Punta all'oggetto dati che contiene i dati da eliminare.
dwKeyState
Contiene lo stato dei tasti di modifica. 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.
point
Contiene la posizione corrente del cursore nelle coordinate client.
Valore restituito
Effetto che potrebbe risultare se si tentasse un rilascio nella posizione specificata in base al punto. 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 Indica che un'operazione di trascinamento dello scorrimento sta per verificarsi o si sta verificando nella destinazione.
Osservazioni:
Questa funzione deve essere sottoposta a override per consentire l'esecuzione delle operazioni di rilascio nella finestra. L'implementazione predefinita di questa funzione chiama CView::OnDragOver, che restituisce DROPEFFECT_NONE per impostazione predefinita. Poiché questa funzione viene chiamata frequentemente durante un'operazione di trascinamento della selezione, deve essere ottimizzata il più possibile.
Per altre informazioni, vedere IDropTarget::D ragOver in Windows SDK.
Esempio
DROPEFFECT COleContainerView::OnDragOver(COleDataObject* pDataObject,
DWORD dwKeyState, CPoint point)
{
UNREFERENCED_PARAMETER(pDataObject);
UNREFERENCED_PARAMETER(point);
DROPEFFECT de = DROPEFFECT_NONE;
//Determine the type of operation
if ((dwKeyState & MK_SHIFT) && (dwKeyState & MK_CONTROL))
de = DROPEFFECT_LINK;
else if (dwKeyState & MK_CONTROL)
de = DROPEFFECT_COPY;
else if (dwKeyState & MK_SHIFT)
de = DROPEFFECT_MOVE;
return de;
}
COleDropTarget::OnDragScroll
Chiamato dal framework prima di chiamare OnDragEnter o OnDragOver per determinare se il punto si trova nell'area di scorrimento.
virtual DROPEFFECT OnDragScroll(
CWnd* pWnd,
DWORD dwKeyState,
CPoint point);
Parametri
pWnd
Punta alla finestra su cui è attualmente posizionato il cursore.
dwKeyState
Contiene lo stato dei tasti di modifica. 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.
point
Contiene la posizione del cursore, espressa in pixel, rispetto allo schermo.
Valore restituito
Effetto che potrebbe risultare se si tentasse un rilascio nella posizione specificata in base al punto. 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 Indica che un'operazione di trascinamento dello scorrimento sta per verificarsi o si sta verificando nella destinazione.
Osservazioni:
Eseguire l'override di questa funzione quando si vuole fornire un comportamento speciale per questo evento. L'implementazione predefinita di questa funzione chiama CView::OnDragScroll, che restituisce DROPEFFECT_NONE e scorre la finestra quando il cursore viene trascinato nell'area di scorrimento predefinita all'interno del bordo della finestra.
COleDropTarget::OnDrop
Chiamato dal framework quando si verifica un'operazione di rilascio.
virtual BOOL OnDrop(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropEffect,
CPoint point);
Parametri
pWnd
Punta alla finestra su cui è attualmente posizionato il cursore.
pDataObject
Punta all'oggetto dati che contiene i dati da eliminare.
dropEffect
Effetto scelto dall'utente per l'operazione di rilascio. Può trattarsi di uno o più dei seguenti elementi:
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.
point
Contiene la posizione del cursore, espressa in pixel, rispetto allo schermo.
Valore restituito
Diverso da zero se la goccia ha esito positivo; in caso contrario, 0.
Osservazioni:
Il framework chiama prima OnDropEx. Se la OnDropEx
funzione non gestisce l'eliminazione, il framework chiama questa funzione membro, OnDrop
. In genere, l'applicazione esegue l'override di OnDropEx nella classe di visualizzazione per gestire il trascinamento del pulsante destro del mouse e la selezione. In genere, la classe di visualizzazione OnDrop viene usata per gestire il semplice trascinamento della selezione.
L'implementazione predefinita di COleDropTarget::OnDrop
chiama CView::OnDrop, che restituisce semplicemente FALSE per impostazione predefinita.
Per altre informazioni, vedere IDropTarget::D rop in Windows SDK.
COleDropTarget::OnDropEx
Chiamato dal framework quando si verifica un'operazione di rilascio.
virtual DROPEFFECT OnDropEx(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropDefault,
DROPEFFECT dropList,
CPoint point);
Parametri
pWnd
Punta alla finestra su cui è attualmente posizionato il cursore.
pDataObject
Punta all'oggetto dati che contiene i dati da eliminare.
dropDefault
Effetto scelto dall'utente per l'operazione di rilascio predefinita in base allo stato della chiave corrente. Può essere DROPEFFECT_NONE. Gli effetti di rilascio sono descritti nella sezione Osservazioni.
dropList
Elenco degli effetti di rilascio supportati dall'origine di rilascio. I valori dell'effetto drop possono essere combinati usando l'operazione OR bit per bit (|
). Gli effetti di rilascio sono descritti nella sezione Osservazioni.
point
Contiene la posizione del cursore, espressa in pixel, rispetto allo schermo.
Valore restituito
Effetto di rilascio risultante dal tentativo di rilascio nella posizione specificata in base al punto. Gli effetti di rilascio sono descritti nella sezione Osservazioni.
Osservazioni:
Il framework chiama prima questa funzione. Se non gestisce l'eliminazione, il framework chiama OnDrop. In genere, si eseguirà l'override di OnDropEx nella classe di visualizzazione per supportare il trascinamento del pulsante destro del mouse e la selezione. In genere, la classe di visualizzazione OnDrop viene usata per gestire il caso di supporto per il semplice trascinamento della selezione.
L'implementazione predefinita di COleDropTarget::OnDropEx
chiama CView::OnDropEx. Per impostazione predefinita, CView::OnDropEx restituisce semplicemente un valore fittizio per indicare che deve essere chiamata la funzione membro OnDrop .
Gli effetti di rilascio descrivono l'azione associata a un'operazione di rilascio. Vedere l'elenco seguente di effetti di rilascio:
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 Indica che un'operazione di trascinamento dello scorrimento sta per verificarsi o si sta verificando nella destinazione.
Per altre informazioni, vedere IDropTarget::D rop in Windows SDK.
COleDropTarget::Register
Chiamare questa funzione per registrare la finestra con le DLL OLE come destinazione di rilascio valida.
BOOL Register(CWnd* pWnd);
Parametri
pWnd
Punta alla finestra da registrare come destinazione di rilascio.
Valore restituito
Diverso da zero se la registrazione ha esito positivo; in caso contrario, 0.
Osservazioni:
Questa funzione deve essere chiamata per consentire l'accettazione delle operazioni di rilascio.
Per altre informazioni, vedere RegisterDragDrop in Windows SDK.
COleDropTarget::Revoke
Chiamare questa funzione prima di eliminare qualsiasi finestra registrata come destinazione di rilascio tramite una chiamata a Register per rimuoverla dall'elenco di destinazioni di rilascio.
virtual void Revoke();
Osservazioni:
Questa funzione viene chiamata automaticamente dal gestore OnDestroy per la finestra registrata, quindi in genere non è necessario chiamare questa funzione in modo esplicito.
Per altre informazioni, vedere RevokeDragDrop in Windows SDK.
Vedi anche
HIERSVR di esempio MFC
OCLIENT di esempio MFC
Classe CCmdTarget
Grafico della gerarchia
Classe COleDropSource