MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Form na posição do mouse

    ribeiroguaruja
    ribeiroguaruja
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 30/05/2015

    [Resolvido]Form na posição do mouse Empty [Resolvido]Form na posição do mouse

    Mensagem  ribeiroguaruja 30/12/2021, 19:24

    Boa tarde pessoal...

    Gostaria de saber, se existe possibilidade de abrir um form na exata posição do cursor do mouse...

    Preciso realizar consultas em um form ou select de "materiais", e ao clicar na quantidade de estoque do ítem, abra um form popup de "fracionados", na posição que cliquei o mouse.

    A dúvida é posicionar o popup "fracionados" na posição do cursor.

    Basketball Basketball


    Última edição por ribeiroguaruja em 13/1/2022, 14:37, editado 1 vez(es)


    .................................................................................
    affraid
    ribeiroguaruja
    ribeiroguaruja
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 30/05/2015

    [Resolvido]Form na posição do mouse Empty Re: [Resolvido]Form na posição do mouse

    Mensagem  ribeiroguaruja 8/1/2022, 23:03

    Encontrei este procedimento em "http://allapi.mentalis.org/apilist/ClientToScreen.shtml" ....

    Private Const SW_MINIMIZE = 6

    Private Type POINTAPI
           x As Long
           y As Long
    End Type

    Private Type RECT
           Left As Long
           Top As Long
           Right As Long
           Bottom As Long
    End Type

    Private Type WINDOWPLACEMENT
           Length As Long
           flags As Long
           showCmd As Long
           ptMinPosition As POINTAPI
           ptMaxPosition As POINTAPI
           rcNormalPosition As RECT
    End Type

    Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
    Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
    Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

    Dim Rectan As RECT

    Private Sub Form_Load()
       'Tip submitted by pyp99 (pyp99@hotmail.com)
       Dim WinEst As WINDOWPLACEMENT
       Dim rtn As Long
       WinEst.Length = Len(WinEst)
       'get the current window placement
       rtn = GetWindowPlacement(Me.hwnd, WinEst)
       Rectan = WinEst.rcNormalPosition
    End Sub

    Private Sub Command1_Click()
       Dim WinEst As WINDOWPLACEMENT
       Dim Punto As POINTAPI
       Dim rtn As Long
       'set the new min/max positions
       Punto.x = 100
       Punto.y = 100
       'initialize the structure
       WinEst.Length = Len(WinEst)
       WinEst.showCmd = SW_MINIMIZE
       WinEst.ptMinPosition = Punto
       WinEst.ptMaxPosition = Punto
       WinEst.rcNormalPosition = Rectan
       'set the new window placement (minimized)
       rtn = SetWindowPlacement(Me.hwnd, WinEst)
    End Sub

    Mas, só consigo abrir um retângulo nesta coordenada fixa = 100,100

    Não consegui adaptar à posição do mouse, nem ao form popup "fracionados" que deve ser o Retângulo deste procedimento

    Alguém pode iluminar meus pensamentos?


    .................................................................................
    affraid
    ribeiroguaruja
    ribeiroguaruja
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 30/05/2015

    [Resolvido]Form na posição do mouse Empty Qual unidade capturo a posição do mouse!

    Mensagem  ribeiroguaruja 13/1/2022, 00:09

    Pessoal...

    O que procuro fazer funcionar de "posicionar o form na posição do mouse" está funcionando, conforme procedimento abaixo... mas numa unidade de

    medida que não entendo...

    movimento o form principal e vejo a movimentação no form secundário, mas numa escala muito menor...

    Como multiplicar essa coordenada Posicao.X e Posicao.Y para ver o resultado real na tela?

    ----------------------------------------------------------------------------------------------

    Option Compare Database
    Option Explicit

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

    Private Type POINTAPI
    X As Long
    Y As Long
    End Type

    Dim Posicao As POINTAPI

    --------------------------------------------------------------------------------------

    Private Sub Form_Open(CANCEL As Integer)

    GetCursorPos Posicao

    Me.Caption = "Código > " & Format(IDMATFR, "00000")
    DoCmd.MoveSize (Posicao.X), (Posicao.Y), 2000, 3000

    End Sub


    .................................................................................
    affraid
    ribeiroguaruja
    ribeiroguaruja
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 30/05/2015

    [Resolvido]Form na posição do mouse Empty No caminho...

    Mensagem  ribeiroguaruja 13/1/2022, 01:04

    Consigo multiplicar por 12 o valor da posição do mouse...

    Fica perto do que pretendo...

    Deve haver uma maneira mais técnica pra isso!

    -----------------------------------------------------
    Private Sub Form_Open(CANCEL As Integer)

    Dim XX As Long
    Dim YY As Long

    GetCursorPos Posicao

    XX = Posicao.X * 12!
    YY = Posicao.Y * 12!

    Me.Caption = "Código > " & Format(IDMATFR, "00000")
    DoCmd.MoveSize (XX), (YY), 2000, 3000

    End Sub


    .................................................................................
    affraid

      Data/hora atual: 1/10/2022, 16:25