|
|
|
PopUpMenu exakt positionieren Dieser Tipp verrät, wie sich ein sevMenuXP-PopUpMenü exakt unterhalb eines Objektes auf der Form anzeigen lässt.
|
Produktversionen: | sevMenuXP 1.0/2.0 |
VB-Versionen: | VB5/6 |
Autor: | Dieter Otter |
Datum: | 03.10.03 |
Views: | 6270 |
|
|
|
  |
|
Viele Anwender verwenden mittlerweile nicht mehr das Standard-Menü von VB in Ihren Anwendungen, sondern das moderne Menüsystem der
sevMenuXP Komponente.
Heute möchten wir Ihnen zeigen, wie sich ein Menü der sevMenuXP-Menüleiste als PopUp-Menü exakt unterhalb eines Objektes anzeigen lässt. Im
nachfolgenden Beispiel soll hierzu das PopUp-Menü beim Klick auf einen CommandButton exakt unterhalb der Schaltfläche erscheinen. Die PopUp-Methode
der MenuBar erwartet als Positionsangabe jedoch die X/Y-Koordinaten bezogen auf den Screen. D.h. mit der Left- und Top-Eigenschaft des CommandButtons
kommen wir hier nicht weiter.
Ergo: Wir müssen zunächst die absolute Position des CommandButtons bezogen auf den Bildschirm ermitteln. Und wie das geht, erfahren Sie jetzt.
' benötigte API-Deklarationen
Private Declare Function ClientToScreen Lib "user32" ( _
ByVal hwnd As Long, _
lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Sub Command1_Click()
Dim P As POINTAPI
' Absolute Position des CommandButtons auf
' dem Bildschirm ermitteln
Call ClientToScreen(Command1.hwnd, P)
' PopUp-Menü exakt unterhalb des
' CommandButton anzeigen
With MenuBar1
.PopUp .MenuItems("MenuPopUp"), _
(P.x - 1), (P.y - 1) + _
ScaleY(Command1.Height, Me.ScaleMode, vbPixels)
End With
End Sub
Zurück zur Übersichtsseite
|