Metodo IDropTarget::D ragOver (oleidl.h)
Fornisce un feedback di destinazione all'utente e comunica l'effetto dell'eliminazione alla funzione DoDragDrop in modo che possa comunicare l'effetto del dropback all'origine.
Sintassi
HRESULT DragOver(
[in] DWORD grfKeyState,
[in] POINTL pt,
[in, out] DWORD *pdwEffect
);
Parametri
[in] grfKeyState
Stato corrente dei tasti di modifica della tastiera sulla tastiera. I valori validi possono essere una combinazione di qualsiasi flag MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON e MK_RBUTTON.
[in] pt
Struttura POINTL contenente le coordinate correnti del cursore nelle coordinate dello schermo.
[in, out] pdwEffect
In input, puntatore al valore del parametro pdwEffect della funzione DoDragDrop . In caso di restituzione, deve contenere uno dei flag DROPEFFECT , che indica il risultato dell'operazione di rilascio.
Valore restituito
Questo metodo restituisce S_OK se l'operazione ha esito positivo. Altri valori possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
Si è verificato un errore imprevisto. |
|
Il valore pdwEffect non è valido. |
|
Memoria insufficiente disponibile per questa operazione. |
Commenti
Non chiamare direttamente DragOver . La funzione DoDragDrop chiama questo metodo ogni volta che l'utente sposta il mouse in una determinata finestra di destinazione. DoDragDrop esce dal ciclo se l'operazione di trascinamento della selezione viene annullata, se l'utente trascina il mouse fuori dalla finestra di destinazione o se la selezione viene completata.
Nell'implementazione di IDropTarget::D ragOver, è necessario fornire funzionalità simili a quelle in IDropTarget::D ragEnter. È necessario determinare l'effetto dell'eliminazione dei dati sulla destinazione esaminando il formato FORMATETC che definisce i formati e il supporto dell'oggetto dati, insieme allo stato delle chiavi di modifica. La posizione del mouse può anche svolgere un ruolo nel determinare l'effetto di una goccia. I tasti di modifica seguenti influiscono sul risultato dell'eliminazione.
Combinazione di tasti | User-Visible Commenti e suggerimenti | Effetto drop |
---|---|---|
CTRL+ MAIUSC | = | DROPEFFECT_LINK |
CTRL | + | DROPEFFECT_COPY |
Nessun tasto o MAIUSC | Nessuno | DROPEFFECT_MOVE |
Si comunica l'effetto del dropback all'origine tramite DoDragDrop in pdwEffect. La funzione DoDragDrop chiama quindi IDropSource::GiveFeedback in modo che l'applicazione di origine possa visualizzare il feedback visivo appropriato all'utente.
Nella voce di IDropTarget::D ragOver, il parametro pdwEffect deve essere impostato sugli effetti consentiti passati al parametro pdwOkEffect della funzione DoDragDrop . Il metodo IDropTarget::D ragOver deve essere in grado di scegliere uno di questi effetti o disabilitare l'eliminazione.
Al momento della restituzione, pdwEffect è impostato su uno dei flag DROPEFFECT. Questo valore viene quindi passato al parametro pdwEffect di DoDragDrop. I valori ragionevoli sono DROPEFFECT_COPY per copiare i dati trascinati nella destinazione, DROPEFFECT_LINK creare un collegamento ai dati di origine o DROPEFFECT_MOVE per consentire lo spostamento permanente dei dati trascinati dall'applicazione di origine alla destinazione.
È anche possibile fornire commenti visivi appropriati nella finestra di destinazione. Potrebbe essere visualizzato un feedback di destinazione già visualizzato da una chiamata precedente a IDropTarget::D ragOver o dall'IDropTarget::D ragEnter iniziale. Se questo feedback non è più appropriato, è necessario rimuoverlo.
Per motivi di efficienza, un oggetto dati non viene passato in IDropTarget::D ragOver. L'oggetto dati passato nella chiamata più recente a IDropTarget::D ragEnter è disponibile e può essere usato.
Quando IDropTarget::D ragOver ha completato l'operazione, la funzione DoDragDrop chiama IDropSource::GiveFeedback in modo che l'applicazione di origine possa visualizzare il feedback visivo appropriato all'utente.
Note per gli implementatori
Questa funzione viene chiamata spesso durante il ciclo DoDragDrop , quindi è opportuno ottimizzare l'implementazione del metodo DragOver il più possibile.Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | oleidl.h |