Clase COleDropSource
Permite arrastrar datos a un destino para colocar.
Sintaxis
class COleDropSource : public CCmdTarget
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
COleDropSource::COleDropSource | Construye un objeto COleDropSource . |
Métodos públicos
Nombre | Descripción |
---|---|
COleDropSource::GiveFeedback | Cambia el cursor durante una operación de arrastrar y colocar. |
COleDropSource::OnBeginDrag | Controla la captura del mouse durante una operación de arrastrar y colocar. |
COleDropSource::QueryContinueDrag | Comprueba si el arrastre debe continuar. |
Comentarios
La clase COleDropTarget controla la parte receptora de la operación de arrastrar y colocar. El objeto COleDropSource
es responsable de determinar cuándo comienza una operación de arrastre, proporcionar comentarios durante la operación de arrastre y determinar cuándo finaliza la operación de arrastre.
Para usar un objeto COleDropSource
, simplemente llama al constructor. Esto simplifica el proceso de determinar qué eventos, como un clic del mouse, inician una operación de arrastre mediante la función COleDataSource::D oDragDrop, COleClientItem::D oDragDrop o COleServerItem::D oDragDrop. Estas funciones crearán un objeto COleDropSource
por ti, automáticamente. Es posible que desees modificar el comportamiento predeterminado de las COleDropSource
funciones reemplazables. El marco llamará a estas funciones miembro en los momentos adecuados.
Para obtener más información sobre las operaciones de arrastrar y colocar mediante OLE, consulte el artículo Arrastrar y colocar OLE.
Para obtener más información, consulta IDropSource en el Windows SDK.
Jerarquía de herencia
COleDropSource
Requisitos
Encabezado: afxole.h
COleDropSource::COleDropSource
Construye un objeto COleDropSource
.
COleDropSource();
COleDropSource::GiveFeedback
Lo llama el marco después de llamar a COleDropTarget::OnDragOver o COleDropTarget::DragEnter.
virtual SCODE GiveFeedback(DROPEFFECT dropEffect);
Parámetros
dropEffect
El efecto que deseas mostrar al usuario, normalmente indica lo que sucedería si se produjera una caída en este punto con los datos seleccionados. Normalmente, este es el valor devuelto por la llamada más reciente a CView::OnDragEnter o CView::OnDragOver. 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.
Valor devuelto
Devuelve DRAGDROP_S_USEDEFAULTCURSORS si el arrastre está en curso, NOERROR si no lo está.
Comentarios
Invalida esta función para proporcionar comentarios al usuario sobre lo que sucedería si se produjera una caída en este momento. La implementación predeterminada usa los cursores predeterminados ole. Para obtener más información sobre las operaciones de arrastrar y colocar mediante OLE, consulte el artículo Arrastrar y colocar OLE.
Para obtener más información, consulta IDropSource::GiveFeedback, IDropTarget::D ragOver e IDropTarget::D ragEnter en Windows SDK.
COleDropSource::OnBeginDrag
Lo llama el marco cuando se produce un evento que podría iniciar una operación de arrastre, como presionar el botón izquierdo del mouse.
virtual BOOL OnBeginDrag(CWnd* pWnd);
Parámetros
pWnd
Apunta a la ventana que contiene los datos seleccionados.
Valor devuelto
Distinto de cero si se permite arrastrar, en caso contrario, 0.
Comentarios
Invalida esta función si deseas modificar la forma en que se inicia el proceso de arrastre. La implementación predeterminada captura el mouse y permanece en modo de arrastre hasta que el usuario hace clic con el botón izquierdo o derecho del mouse o presiona ESC, en cuyo momento se cancela la operación de arrastre.
COleDropSource::QueryContinueDrag
Después de iniciar el arrastre, el marco llama repetidamente a esta función hasta que se cancela o completa la operación de arrastre.
virtual SCODE QueryContinueDrag(
BOOL bEscapePressed,
DWORD dwKeyState);
Parámetros
bEscapePressed
Indica si se ha presionado la tecla ESC desde la última llamada a COleDropSource::QueryContinueDrag
.
dwKeyState
Contiene el estado de las claves modificadoras en el teclado. 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.
Valor devuelto
DRAGDROP_S_CANCEL si se presiona la tecla ESC o el botón derecho, o se genera el botón izquierdo antes de iniciar el arrastre. DRAGDROP_S_DROP si se debe producir una operación de eliminación. De lo contrario, S_OK.
Comentarios
Invalida esta función si deseas cambiar el punto en el que se cancela el arrastre o se produce una colocación.
La implementación predeterminada inicia la colocación o cancela el arrastre como se indica a continuación. Cancela una operación de arrastre cuando se presiona la tecla ESC o el botón derecho del mouse. Inicia una operación de colocación cuando se genera el botón izquierdo del mouse después de que se haya iniciado el arrastre. De lo contrario, devuelve S_OK y no realiza más operaciones.
Dado que se llama a esta función con frecuencia, se debe optimizar tanto como sea posible.
Consulte también
HIERSVR de muestra MFC
Ejemplo MFC de OCLIENT
CCmdTarget (clase)
Gráfico de jerarquías