Arrastando imagens a partir de uma lista de imagens
CImageList inclui funções para arrastar uma imagem na tela. As funções arrastando movimentam uma imagem de forma tranquila, cor e, sem nenhum piscamento de cursor. As imagens mascaradas e desmascaradas podem ser arrastadas.
A função de membro de BeginDrag inicia uma operação. Os parâmetros incluindo o índice da imagem para arrastar e o local do ponto de acesso dentro da imagem. O ponto de acesso é um único pixels que as funções arrastando reconheçam como o local exato de tela da imagem. Normalmente, um aplicativo definir o ponto de acesso de modo que coincida com o ponto de acesso de cursor do mouse em. A função de membro de DragMove move a imagem para um novo local.
A função de membro de DragEnter define a posição inicial da imagem de arrastamento dentro da janela e desenha a imagem na posição. Os parâmetros incluem um ponteiro para a janela na qual 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 a área do cliente. O mesmo é válido para qualquer a arrastar funções que levam coordena como parâmetros. Isso significa que você deve compensar as larguras dos elementos da janela do, como a borda, a barra de título, e a barra de menus, ao especificar as coordenadas. Se você especificar um identificador de janela de nulo ao chamar DragEnter, as funções arrastando desenha a imagem no contexto do dispositivo associado à janela de área de trabalho, e as coordenadas são relativas ao canto superior esquerdo da tela.
DragEnter bloqueia todas atualizações restantes na janela determinada durante a operação. Se você precisar fazer qualquer desenho durante uma operação de arrastar, como realce o destino de uma operação de arrastar e soltar, você pode ocultar temporariamente a imagem arrastada usando a função de membro de DragLeave . Você também pode usar a função de membro de DragShowNoLock .
Chame EndDrag quando você terminar de arrastar a imagem.
A função de membro de SetDragCursorImage cria uma nova imagem de arrastamento combinando a imagem especificada (normalmente uma imagem de cursor do mouse) com a imagem atual de arrastamento. Como as funções arrastando usam a nova imagem durante uma operação de arrastar, você deve usar a função de ShowCursor do windows para ocultar o cursor do mouse real depois de chamar SetDragCursorImage. Caso contrário, o sistema pode parecer ter dois cursor do mouse para a duração da operação.
Quando um aplicativo chama BeginDrag, o sistema criará uma lista de imagem e cópias temporárias internas, a imagem especificada de arrastamento à lista interna. Você pode recuperar um ponteiro para a lista temporária da imagem de arrastamento usando a função de membro de GetDragImage . A função também recupera a posição atual de arrastamento e o deslocamento da imagem de arrastamento em relação à posição de arrastamento.