Aplicativos baseados em Win32 frequentemente executam tarefas que envolvem o controle da posição do cursor do mouse. A maioria dos aplicativos de desenho, por exemplo, controlá-la durante desenho operações, permitindo que o usuário desenhar na área de cliente da janela, arrastando o mouse. Aplicativos de processamento de texto também controlar o cursor, permitindo que o usuário selecionar uma palavra ou bloco de texto clicando e arrastando o mouse.
Controlar o cursor normalmente envolve as WM_LBUTTONDOWN, WM_MOUSEMOVEe WM_LBUTTONUP mensagens processamento. Uma janela determina quando começar a controlar o cursor, verificando a posição do cursor fornecida no parâmetro lParam da mensagem WM_LBUTTONDOWN. Por exemplo, um aplicativo de processamento de texto iria começar a controlar o cursor somente se a mensagem WM_LBUTTONDOWN ocorreu enquanto o cursor estava em uma linha de texto, mas não se era ultrapassou o fim do documento.
Uma janela controla a posição do cursor por processar as mensagens de fluxo de WM_MOUSEMOVE lançadas para a janela enquanto o mouse se move. Processar a mensagem de WM_MOUSEMOVE normalmente envolve uma pintura repetitiva ou operação de desenho na área do cliente. Por exemplo, um aplicativo de desenho pode redesenhar uma linha repetidamente enquanto o mouse se move. Uma janela usa a mensagem WM_LBUTTONUP como um sinal para parar o cursor de controle.