Compartir a través de


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

CObject

CCmdTarget

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