USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Saber em qual controle o cursor está posicionado
RMI@
CAMPO BELO
MG - BRASIL
Postada em 18/12/2008 11:23 hs            
Olá a todos...
 
Gostaria de saber se tem como identificar o campo/controle onde o cursor do mouse se encontra posicionado. Por ex. o Usuário pressiona F12 e na rotina eu verifico onde ele está o cursor (endereço, telefone, etc).
Obrigado.
     
Sandro
não registrado
ENUNCIADA !
Postada em 18/12/2008 15:21 hs   
Olá,
 
Você pode criar uma rotina semelhante a essa:
 
Private Sub Identifica_Controle()
    Dim R As RECT
    Dim P As POINTAPI
    Dim Controle As Control
   
    GetCursorPos P
   
    For Each Controle In Controls
        GetWindowRect Controle.hwnd, R
       
        If (P.X >= R.Left) And (P.X <= R.Right) And _
           (P.Y >= R.Top) And (P.Y <= R.Bottom) Then
           
            Me.Caption = Controle.Name
        End If
    Next
    Set Controle = Nothing
   
End Sub
 
Depois, em cada controle, coloque a chamada a esta procedure no evento MouseMove. Da forma como ela está ela iré exibir na barra de títulos do formulário o nome do controle. Você pode adaptá-la às suas necessidades.
 
Um abraço,
Sandro.
 
 
 
   
RMI@
CAMPO BELO
MG - BRASIL
Postada em 19/12/2008 08:50 hs            
Sandro, obrigado pela ajuda.
Deu um erro na declaração: Dim R As RECT
 
me parece que precisa de alguma dll nas propriedades do projeto ne?
 
Abraço!
     
Sandro
não registrado
ENUNCIADA !
Postada em 19/12/2008 09:02 hs   
Olá,
 
Desculpe, na verdade faltou declarar o tipo RECT, POINTAPI e a própria DLL. Aqui vai:
 
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long
Esta rotina serve para você chamar de qualquer controle que possua o evento MouseMove, de forma genérica, apenas chamando a função. Uma forma mais sofisticada seria fazer um hook (gancho) para o mouse e rastrear em qual janela ele está, mas isso é relativamente perigoso, pois você pode derrubar o IDE do VB...
 
Sandro.
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página