Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
147
Assunto : Visual Basic
Titulo: Prender o mouse em uma janela

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Para realizar esta tarefa podemos utilizar 2 funções da API de forma associada : ClipCursor e GetWindowRect. A função clipcursor é a responsável por preender o cursor do mouse em uma janela. Já a GetWindowRect é a responsável por delimitar a janela na qual o cursor será preso. Será utilizada também a função GetDesktopWindow para obter informações sobre a área de trabalho.

Primeiramente precisaremos declarar essas funções dentro de um módulo. Elas são diferentes em 16 ou 32 bits, por isso na época dos sistemas em 16 bits utilizava-se as diretivas de compilação para diferenciar uma declaração ou outra na hora de compilar. Veja :

#If Win16 Then
Type Retang
esquerda As Integer
topo As Integer
direita As Integer
baixo As Integer
End Type
Declare Sub ClipCursor Lib "User" (lpRetang As Retang)
Declare Sub GetWindowRect Lib "User" (ByVal hWnd _
As Integer, lpRetang As Retang)
Declare Function GetDesktopWindow Lib "User" () As Integer
#Else
Type Retang
esquerda As Long
topo As Long
direita As Long
baixo As Long
End Type
Declare Sub ClipCursor Lib "User32" (lpRetang As Retang)
Declare Sub GetWindowRect Lib "User32" (ByVal hWnd _
As Integer, lpRetang As Retang)
Declare Function GetDesktopWindow Lib "User32" () As Long
#End If


Feitas as declarações podemos criar 2 botões no form : Um para preender o mouse no form outro para soltar. Veja :

sub cmdPrender_click()
Dim EstaJanela As Retang
GetWindowRect Me.hWnd, EstaJanela
ClipCursor EstaJanela
end sub

Observe como o GetWindowRect foi utilizado para obter as informações sobre a janela utilizada pela aplicação (passando-se o handle do form) e a informação obtida foi passada para a função Clipcursor.

Retang é o tipo que foi definido dentro do módulo. Observe as declarações anteriormente : Este tipo contém as coordenadas da janela.

Agora outro botão para desfazer :

Sub cmdLiberar_click()

Dim DesktopWindow As Retang
GetWindowRect GetDesktopWindow(), DesktopWindow
ClipCursor DesktopWindow

end sub

Foram obtidas informações sobre a janela do desktop. Observe que a função GetDesktopWindow() devolve o handle do desktop que de imediato está sendo passado para a função GetWindowRect que obtem as coordenadas dessa janela e, por fim, o ClipCursor é chamado para liberar o mouse para essas coordenadas.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br