Condividi tramite


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à

CObject

CCmdTarget

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