Classe COleDropSource

Permite que os dados sejam arrastados para um destino suspenso.

Sintaxe

class COleDropSource : public CCmdTarget

Membros

Construtores públicos

Nome Descrição
COleDropSource::COleDropSource Constrói um objeto COleDropSource.

Métodos públicos

Nome Descrição
COleDropSource::GiveFeedback Altera o cursor durante uma operação do tipo "arrastar e soltar".
COleDropSource::OnBeginDrag Manipula a captura do mouse durante uma operação do tipo "arrastar e soltar".
COleDropSource::QueryContinueDrag Verifica se o arrasto deve continuar.

Comentários

A classe COleDropTarget manipula a parte receptora da operação do tipo "arrastar e soltar". O objeto COleDropSource é responsável por determinar quando uma operação de arrastar começa, fornecer comentários durante a operação de arrastar e determinar quando a operação de arrastar termina.

Para usar um objeto COleDropSource, basta chamar o construtor. Isso simplifica o processo de determinar quais eventos, como um clique do mouse, iniciam uma operação de arrastar usando COleDataSource::DoDragDrop, COleClientItem::DoDragDrop ou COleServerItem::DoDragDrop. Essas funções criarão um objeto COleDropSource para você. Talvez você queira modificar o comportamento padrão das funções substituíveis COleDropSource. Essas funções de membro serão chamadas nos momentos apropriados pela estrutura.

Para mais informações sobre as operações do tipo "arrastar e soltar" usando OLE, confira o artigo Arrastar e soltar OLE.

Para mais informações, confira IDropSource no SDK do Windows.

Hierarquia de herança

CObject

CCmdTarget

COleDropSource

Requisitos

Cabeçalho: afxole.h

COleDropSource::COleDropSource

Constrói um objeto COleDropSource.

COleDropSource();

COleDropSource::GiveFeedback

Chamado pela estrutura depois de chamar COleDropTarget::OnDragOver ou COleDropTarget::DragEnter.

virtual SCODE GiveFeedback(DROPEFFECT dropEffect);

Parâmetros

dropEffect
O efeito que você gostaria de exibir para o usuário, geralmente indicando o que aconteceria se uma operação de soltar ocorresse neste ponto com os dados selecionados. Normalmente, esse é o valor retornado pela chamada mais recente para CView::OnDragEnter ou CView::OnDragOver. Poderá ser um ou mais dos seguintes:

  • DROPEFFECT_NONE Não seria permitido soltar.

  • DROPEFFECT_COPY Uma operação de cópia seria executada.

  • DROPEFFECT_MOVE Uma operação de movimentação seria executada.

  • DROPEFFECT_LINK Uma vinculação dos dados soltos para os dados originais seria estabelecida.

  • DROPEFFECT_SCROLL Uma operação de rolar e arrastar está prestes a ocorrer ou está ocorrendo no destino.

Valor de retorno

Retorna DRAGDROP_S_USEDEFAULTCURSORS se o arrasto está em andamento, NOERROR se não está.

Comentários

Substitua essa função para fornecer comentários ao usuário sobre o que aconteceria se uma operação de soltar ocorresse neste momento. A implementação padrão usa os cursores padrão OLE. Para mais informações sobre as operações do tipo "arrastar e soltar" usando OLE, confira o artigo Arrastar e soltar OLE.

Para mais informações, confira IDropSource::GiveFeedback, IDropTarget::DragOver e IDropTarget::DragEnter no SDK do Windows.

COleDropSource::OnBeginDrag

Chamado pela estrutura quando ocorre um evento que pode iniciar uma operação de arrastar, como pressionar o botão esquerdo do mouse.

virtual BOOL OnBeginDrag(CWnd* pWnd);

Parâmetros

pWnd
Aponta para a janela que contém os dados selecionados.

Valor de retorno

Diferente de zero se for permitido arrastar; caso contrário, 0.

Comentários

Substitua essa função se você quiser modificar a forma como o processo de arrastar é iniciado. A implementação padrão captura o mouse e permanece no modo de arrastar até que o usuário clique no botão esquerdo ou direito do mouse ou atinja o ESC, momento em que ele libera o mouse.

COleDropSource::QueryContinueDrag

Após o início da arrastar, essa função é chamada repetidamente pela estrutura até que a operação de arrastar seja cancelada ou concluída.

virtual SCODE QueryContinueDrag(
    BOOL bEscapePressed,
    DWORD dwKeyState);

Parâmetros

bEscapePressed
Indica se a tecla ESC foi pressionada desde a última chamada para COleDropSource::QueryContinueDrag.

dwKeyState
Contém o estado das teclas modificadoras no teclado. Essa é uma combinação de qualquer número dos seguintes: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON e MK_RBUTTON.

Valor de retorno

DRAGDROP_S_CANCEL se a tecla ESC ou o botão direito estiver pressionado ou se o botão esquerdo for acionado antes de começar a arrastar. DRAGDROP_S_DROP se uma operação de soltar deve ocorrer. Caso contrário, S_OK.

Comentários

Substitua essa função se você quiser alterar o ponto no qual o arrasto é cancelado ou ocorre uma operação de soltar.

A implementação padrão inicia a operação de soltar ou cancela a operação de arrastar como segue. Ela cancela uma operação de arrastar quando a tecla ESC ou o botão direito do mouse é pressionado. Ela inicia uma operação de soltar quando o botão esquerdo do mouse é acionado após o início da operação de arrastar. Caso contrário, retornará S_OK e não executará mais nenhuma operação.

Como essa função é chamada com frequência, ela deve ser otimizada o máximo possível.

Confira também

HIERSVR de exemplo do MFC
OCLIENT de exemplo do MFC
Classe CCmdTarget
Gráfico da hierarquia