Partilhar via


Arrastando imagens a partir de uma lista de imagens

O CImageList inclui funções para arrastar uma imagem na tela. As funções de arrastar movem uma imagem suavemente, em cores e sem que o cursor fique piscando. Imagens mascaradas e sem máscara podem ser arrastadas.

A função membro BeginDrag inicia uma operação de arrastar. Os parâmetros incluem o índice da imagem a ser arrastada e o local do ponto de acesso dentro da imagem. O ponto de acesso é um único pixel que as funções de arrastar reconhecem como o local exato da tela da imagem. Normalmente, um aplicativo define o ponto de acesso para que ele coincida com o ponto de acesso do cursor do mouse. A função membro DragMove move a imagem para um novo local.

A função membro DragEnter define a posição inicial da imagem de arrasto dentro de uma janela e desenha a imagem na posição. Os parâmetros incluem um ponteiro para a janela onde desenhar a imagem e um ponto que especifica as coordenadas da posição inicial dentro da janela. As coordenadas são relativas ao canto superior esquerdo da janela (não da área do cliente). O mesmo vale para todas as funções de arrastar imagens que tomam coordenadas como parâmetros. Isso significa que você deve compensar as larguras dos elementos da janela, como a borda, a barra de título e a barra de menus, ao especificar as coordenadas. Se você especifica um identificador de janela NULL ao chamar DragEnter, as funções de arrastar desenham a imagem no contexto do dispositivo associado à janela da área de trabalho e as coordenadas são relativas ao canto superior esquerdo da tela.

DragEnter bloqueia todas as outras atualizações para a janela fornecida durante a operação de arrastar. Se você precisar fazer qualquer desenho durante uma operação de arrastar, como realçar o destino de uma operação do tipo "arrastar e soltar", será possível ocultar temporariamente a imagem arrastada usando a função membro DragLeave. Você também pode usar a função membro DragShowNoLock.

Chame EndDrag quando terminar de arrastar a imagem.

A função membro SetDragCursorImage cria uma nova imagem de arrasto combinando a imagem fornecida (normalmente uma imagem de cursor do mouse) com a imagem de arrasto atual. Como as funções de arrastar usam a nova imagem durante uma operação de arrastar, você deve usar a função ShowCursor do Windows para ocultar o cursor real do mouse depois de chamarSetDragCursorImage. Caso contrário, o sistema pode parecer ter dois cursores do mouse durante a operação de arrastar.

Quando um aplicativo chama BeginDrag, o sistema cria uma lista de imagens interna temporária e copia a imagem de arrasto especificada para a lista interna. Você pode recuperar um ponteiro para a lista de imagens de arrasto temporária usando a função membro GetDragImage. A função também recupera a posição de arrastar atual e o deslocamento da imagem de arrasto em relação à posição de arrastar.

Confira também

Usando CImageList
Controles