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
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