Vba 如何将相对对象坐标转换为绝对坐标
我在表单上有一个按钮,可以打开弹出菜单。我需要打开按钮下方的弹出菜单<代码>显示弹出窗口函数接受绝对桌面坐标。如果我知道表单上的按钮位置,如何计算绝对坐标 目前我正在使用以下技巧:Vba 如何将相对对象坐标转换为绝对坐标,vba,ms-access,Vba,Ms Access,我在表单上有一个按钮,可以打开弹出菜单。我需要打开按钮下方的弹出菜单显示弹出窗口函数接受绝对桌面坐标。如果我知道表单上的按钮位置,如何计算绝对坐标 目前我正在使用以下技巧: Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hW
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function GetFocus Lib "user32" () As Long
Private Sub Command1_Click()
Dim r As RECT
Dim chwnd As Long
Dim h As Long
Me.Text1.SetFocus
chwnd = GetFocus
Me.Command1.SetFocus
h = GetWindowRect(chwnd, r)
CommandBars("PopupMenu").ShowPopup r.Left, r.Bottom
End Sub
它可以工作,但按钮下方的额外文本框Text1
允许使用API获取绝对位置,这并不是一个很好的解决方案,它希望计算而不是使用人工“书签”