Hallo allerseits,
ich möchte kontrollieren, wie der Benutzer ein Formular verschiebt (ähnlich wie in WinAmp). Welche APIs muss ich nutzen? Ich bin für jeden Tip dankbar!
Grüße, Tom
Hallo allerseits,
ich möchte kontrollieren, wie der Benutzer ein Formular verschiebt (ähnlich wie in WinAmp). Welche APIs muss ich nutzen? Ich bin für jeden Tip dankbar!
Grüße, Tom
Hallo,
hier eine Lösungsvariante. Funktioniert perfekt, wenn
BorderStyle = 3 - FixedDialog
ControlBox = False
Caption = ""
ist.
Das ‚snaping‘ mit dem Bildschirm-Rand, kann man dazu dann auch noch relativ leicht einbauen.
greets from MichL (Vienna)
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private blnmMove As Boolean
Private xm As Single
Private ym As Single
'
Private Sub Form\_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
blnmMove = True
xm = x + (Me.Width - Me.ScaleWidth) / 2
ym = y + (Me.Height - Me.ScaleHeight) / 2
End Sub
'
Private Sub Form\_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim p As POINTAPI
Call GetCursorPos(p)
If blnmMove Then
Call Me.Move(p.x \* Screen.TwipsPerPixelX - xm, p.y \* Screen.TwipsPerPixelY - ym)
End If
End Sub
'
Private Sub Form\_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
blnmMove = False
End Sub
Hi MichL,
du mal wieder
Danke für deine Antwort - hilft mir leider nicht weiter, denn das Form soll Caption und ControlBox haben. Ausserdem kann man die Funktionalität deines Code-Beispiels dann auch viel einfacher mit dem Form-Move-Event erreichen.
Das Problem ist also: Wie bekomme ich in meinem Programm mit, dass der Anwender auf den TitleBar klickt, um das Formular zu verschieben. Dazu muss ich sicherlich irgendwo eine CallBack einhängen. Hast du dazu auch eine Idee?
Grüße, Tom (Frankfurt)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo,
leider habe ich kein entsprechendes „CallBack“ parat - bin da selbst nur 1/4-Profi. Naja … vielleicht entdecke ich ja mal zufällig das Coding, dann weiss ich ja, wo ich’s hinmailen muß.
Anderer Vorschlag: Programmier Dir die Caption mit einem Label und die ControlBox mit einem ToolButton einfach selber. Das sieht zwar nur zu 99% so aus wie ein original Fenster, hast aber dann wieder „Full-Control“ übers Fenster!!
Ansonsten bin ich mit meinen Programmierkünsten am Ende.
sorry from MichL (Vienna)