|
|
|
|
|
Dicas
|
|
Visual Basic (Mouse/Teclado)
|
|
|
Título da Dica: Mudar a Posição do Mouse via Código (sem Move-lo)
|
|
|
|
Postada em 14/8/2000 por Webmaster
webmaster@vbweb.com.br
Esse recurso é muito útil para posicionar o ponteiro sobre botões e outros objetos sem mover o mouse, usando a API SetCursorPos.
'No Declarations: Private Declare Function SetCursorPos Lib _ "user32" (ByVal X As Long, ByVal Y _ As Long) As Long
'P/ colocar o cursor do mouse em qualquer parte 'do vídeo use o comando: SetCursorPos PosiçãoX, PosiçãoY 'Onde PosiçãoX e PosiçãoY são valores inteiros '(Integer) e são as coordenadas da posição em 'Pixel da tela p/ onde o mouse irá.
'Por exemplo: SetCursorPos 200, 250
'Use esta Sub para centralizar o ponteiro do 'mouse sobre um objeto no Form: Sub Posiciona(Controle As Control) Dim SX As Integer, SY As Integer SX = Screen.TwipsPerPixelX SY = Screen.TwipsPerPixelY SetCursorPos Me.Left / SX + Controle.Left / _ SX + (Controle.Width / SX / 2), _ Me.Top / SY + Controle.Top / SY + _ (Controle.Height / SY / 2) + 20 End Sub Obs: A última linha da Sub é que faz com que o ponteiro do mouse se mova para a nova poisição da tela, conforme o resultado do calculo: Posição do Form no vídeo + Posição do controle no Form + largura do controle /2 Veja que no final existe uma soma (+20) que foi feita para compensar a barra de título que não é contada no formulário.
'P/ testar, coloque dois CommandButton no Form e, 'em seus respectivos eventos, coloque: Private Sub Command1_Click() Posiciona Command2 'Centraliza o ponteiro no Command2 End Sub
Private Sub Command2_Click() Posiciona Command1 'Devolve o ponteiro no Command1 End Sub
|
|
|
|
|