COleDropTarget (clase)
Proporciona el mecanismo de comunicación entre una ventana y las bibliotecas OLE.
Sintaxis
class COleDropTarget : public CCmdTarget
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
COleDropTarget::COleDropTarget | Construye un objeto COleDropTarget . |
Métodos públicos
Nombre | Descripción |
---|---|
COleDropTarget::OnDragEnter | Se llama cuando el cursor entra por primera vez en la ventana. |
COleDropTarget::OnDragLeave | Se llama cuando el cursor se arrastra fuera de la ventana. |
COleDropTarget::OnDragOver | Se llama repetidamente cuando el cursor se arrastra sobre la ventana. |
COleDropTarget::OnDragScroll | Se llama para determinar si el cursor se arrastra a la región de desplazamiento de la ventana. |
COleDropTarget::OnDrop | Se llama cuando se quitan los datos en la ventana, controlador predeterminado. |
COleDropTarget::OnDropEx | Se llama cuando se quitan los datos en la ventana, controlador inicial. |
COleDropTarget::Register | Registra la ventana como destino de colocación válido. |
COleDropTarget::Revoke | Hace que la ventana deje de ser un destino de colocación válido. |
Comentarios
La creación de un objeto de esta clase permite que una ventana acepte datos a través del mecanismo de arrastrar y colocar OLE.
Para obtener una ventana para aceptar comandos drop, primero debe crear un objeto de la clase COleDropTarget
y, a continuación, llamar a la función Register con un puntero al objeto CWnd
deseado como el único parámetro.
Para obtener más información sobre las operaciones de arrastrar y colocar mediante OLE, consulte el artículo Arrastrar y colocar OLE.
Jerarquía de herencia
COleDropTarget
Requisitos
Encabezado: afxole.h
COleDropTarget::COleDropTarget
Construye un objeto de clase COleDropTarget
.
COleDropTarget();
Comentarios
Llame a Register para asociar este objeto a una ventana.
COleDropTarget::OnDragEnter
Lo llama el marco cuando el cursor se arrastra por primera vez a la ventana.
virtual DROPEFFECT OnDragEnter(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parámetros
pWnd
Apunta a la ventana en la que está escribiendo el cursor.
pDataObject
Apunta al objeto de datos que contiene los datos que se pueden quitar.
dwKeyState
Contiene el estado de las claves modificadoras. Se trata de una combinación de cualquier número de los siguientes: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON y MK_RBUTTON.
point
Contiene la ubicación actual del cursor en coordenadas de cliente.
Valor devuelto
Efecto que se produciría si se intentara una colocación en la ubicación especificada por punto. Puede ser uno o varios de los siguientes:
DROPEFFECT_NONE No se permitiría una colocación.
DROPEFFECT_COPY Se podría realizar una operación de copia.
DROPEFFECT_MOVE Se realizaría una operación de movimiento.
DROPEFFECT_LINK Se podría establecer un vínculo de los datos colocados a los datos originales.
DROPEFFECT_SCROLL Indica que una operación de desplazamiento de arrastre está a punto de producirse o que se está produciendo en el destino.
Comentarios
Invalide esta función para permitir que las operaciones de eliminación se produzcan en la ventana. La implementación predeterminada llama a CView::OnDragEnter, que simplemente devuelve DROPEFFECT_NONE de forma predeterminada.
Para obtener más información, vea IDropTarget::D ragEnter en Windows SDK.
COleDropTarget::OnDragLeave
Lo llama el marco cuando el cursor sale de la ventana mientras una operación de arrastre está en vigor.
virtual void OnDragLeave(CWnd* pWnd);
Parámetros
pWnd
Apunta a la ventana que deja el cursor.
Comentarios
Invalide esta función si desea un comportamiento especial cuando la operación de arrastre sale de la ventana especificada. La implementación predeterminada de esta función llama a CView::OnDragLeave.
Para obtener más información, vea IDropTarget::DragLeave en Windows SDK.
COleDropTarget::OnDragOver
Lo llama el marco cuando el cursor se arrastra sobre la ventana.
virtual DROPEFFECT OnDragOver(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parámetros
pWnd
Apunta a la ventana en la que se ha terminado el cursor.
pDataObject
Apunta al objeto de datos que contiene los datos que se van a quitar.
dwKeyState
Contiene el estado de las claves modificadoras. Se trata de una combinación de cualquier número de los siguientes: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON y MK_RBUTTON.
point
Contiene la ubicación actual del cursor en coordenadas de cliente.
Valor devuelto
Efecto que se produciría si se intentara una colocación en la ubicación especificada por punto. Puede ser uno o varios de los siguientes:
DROPEFFECT_NONE No se permitiría una colocación.
DROPEFFECT_COPY Se podría realizar una operación de copia.
DROPEFFECT_MOVE Se realizaría una operación de movimiento.
DROPEFFECT_LINK Se podría establecer un vínculo de los datos colocados a los datos originales.
DROPEFFECT_SCROLL Indica que una operación de desplazamiento de arrastre está a punto de producirse o que se está produciendo en la vista de destino.
Comentarios
Esta función se debe invalidar para permitir que las operaciones de colocación se produzcan en la ventana. La implementación predeterminada de esta función llama a CView::OnDragOver, que devuelve DROPEFFECT_NONE de forma predeterminada. Dado que se llama a esta función con frecuencia durante una operación de arrastrar y colocar, debe optimizarse tanto como sea posible.
Para obtener más información, vea IDropTarget::DragOver en Windows SDK.
Ejemplo
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
Lo llama el marco antes de llamar a OnDragEnter o OnDragOver para determinar si el punto está en la región de desplazamiento.
virtual DROPEFFECT OnDragScroll(
CWnd* pWnd,
DWORD dwKeyState,
CPoint point);
Parámetros
pWnd
Apunta a la ventana en la que se ha terminado el cursor.
dwKeyState
Contiene el estado de las claves modificadoras. Se trata de una combinación de cualquier número de los siguientes: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON y MK_RBUTTON.
point
Contiene la ubicación del cursor, en píxeles, con respecto a la pantalla.
Valor devuelto
Efecto que se produciría si se intentara una colocación en la ubicación especificada por punto. Puede ser uno o varios de los siguientes:
DROPEFFECT_NONE No se permitiría una colocación.
DROPEFFECT_COPY Se podría realizar una operación de copia.
DROPEFFECT_MOVE Se realizaría una operación de movimiento.
DROPEFFECT_LINK Se podría establecer un vínculo de los datos colocados a los datos originales.
DROPEFFECT_SCROLL Indica que una operación de desplazamiento de arrastre está a punto de producirse o que se está produciendo en la vista de destino.
Comentarios
Invalide esta función cuando quiera proporcionar un comportamiento especial para este evento. La implementación predeterminada de esta función llama a CView::OnDragScroll, que devuelve DROPEFFECT_NONE y desplaza la ventana cuando el cursor se arrastra a la región de desplazamiento predeterminada dentro del borde de la ventana.
COleDropTarget::OnDrop
Lo llama el marco cuando se va a producir una operación de eliminación.
virtual BOOL OnDrop(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropEffect,
CPoint point);
Parámetros
pWnd
Apunta a la ventana en la que se ha terminado el cursor.
pDataObject
Apunta al objeto de datos que contiene los datos que se van a quitar.
dropEffect
Efecto que el usuario eligió para la operación de colocación. Puede ser uno o varios de los siguientes:
DROPEFFECT_COPY Se podría realizar una operación de copia.
DROPEFFECT_MOVE Se realizaría una operación de movimiento.
DROPEFFECT_LINK Se podría establecer un vínculo de los datos colocados a los datos originales.
point
Contiene la ubicación del cursor, en píxeles, con respecto a la pantalla.
Valor devuelto
Distinto de cero si la colocación se realiza correctamente; de lo contrario, 0.
Comentarios
El marco llama primero a OnDropEx. Si la función OnDropEx
no controla la colocación, el marco llama a esta función miembro, OnDrop
. Normalmente, la aplicación invalida OnDropEx en la clase de vista para controlar el arrastrar y colocar el botón derecho del mouse. Normalmente, la clase de vista OnDrop se usa para controlar el arrastre y la colocación sencillos.
La implementación predeterminada de COleDropTarget::OnDrop
llama a CView::OnDrop, que simplemente devuelve FALSE de forma predeterminada.
Para obtener más información, vea IDropTarget::Drop en Windows SDK.
COleDropTarget::OnDropEx
Lo llama el marco cuando se va a producir una operación de eliminación.
virtual DROPEFFECT OnDropEx(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropDefault,
DROPEFFECT dropList,
CPoint point);
Parámetros
pWnd
Apunta a la ventana en la que se ha terminado el cursor.
pDataObject
Apunta al objeto de datos que contiene los datos que se van a quitar.
dropDefault
Efecto que el usuario eligió para la operación de colocación predeterminada en función del estado de clave actual. Puede ser DROPEFFECT_NONE. Los efectos de colocación se describen en la sección Comentarios.
dropList
Lista de los efectos de colocación que admite el origen de colocación. Los valores de efecto de colocación pueden combinarse mediante la operación bit a bit OR (|
). Los efectos de colocación se describen en la sección Comentarios.
point
Contiene la ubicación del cursor, en píxeles, con respecto a la pantalla.
Valor devuelto
Efecto de colocación resultante del intento de colocación en la ubicación especificada por point. Los efectos de colocación se describen en la sección Comentarios.
Comentarios
El marco llama primero a esta función. Si no controla la colocación, el marco llama a OnDrop. Normalmente, invalidará OnDropEx en la clase de vista para admitir el arrastrar y colocar el botón derecho del mouse. Normalmente, la clase de vista OnDrop se usa para controlar el caso de compatibilidad con arrastrar y colocar sencillos.
La implementación predeterminada de COleDropTarget::OnDropEx
llama a CView::OnDropEx. De forma predeterminada, CView::OnDropEx simplemente devuelve un valor ficticio para indicar que se debe llamar a la función miembro OnDrop .
Los efectos de colocación describen la acción asociada a una operación de colocación. Consulte la siguiente lista de efectos de colocación:
DROPEFFECT_NONE No se permitiría una colocación.
DROPEFFECT_COPY Se podría realizar una operación de copia.
DROPEFFECT_MOVE Se realizaría una operación de movimiento.
DROPEFFECT_LINK Se podría establecer un vínculo de los datos colocados a los datos originales.
DROPEFFECT_SCROLL Indica que una operación de desplazamiento de arrastre está a punto de producirse o que se está produciendo en la vista de destino.
Para obtener más información, vea IDropTarget::Drop en Windows SDK.
COleDropTarget::Register
Llame a esta función para registrar la ventana con los archivos DLL OLE como destino de colocación válido.
BOOL Register(CWnd* pWnd);
Parámetros
pWnd
Apunta a la ventana que se va a registrar como destino de colocación.
Valor devuelto
Distinto de cero si el registro se realiza correctamente; de lo contrario, 0.
Comentarios
Se debe llamar a esta función para que se acepten las operaciones de eliminación.
Para más información, consulte RegisterDragDrop en Windows SDK.
COleDropTarget::Revoke
Llame a esta función antes de destruir cualquier ventana que se haya registrado como destino de colocación a través de una llamada a Register para quitarla de la lista de destinos de colocación.
virtual void Revoke();
Comentarios
Esta función se llama automáticamente desde el controlador OnDestroy para la ventana registrada, por lo que normalmente no es necesario llamar a esta función explícitamente.
Para obtener más información, vea RevokeDragDrop en Windows SDK.
Consulte también
HIERSVR de muestra MFC
Ejemplo MFC de OCLIENT
CCmdTarget (clase)
Gráfico de jerarquías
COleDropSource (clase)