Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0039: Form ohne Titelleiste bewegen

 von 

Beschreibung 

Was tuen mit einem Form ohne Titelleiste, wenn es per Maus hin- und hergeschoben werden soll. Man dieses Problem elegant mit zwei API Lösen:

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

ReleaseCapture, SendMessageA (SendMessage)

Download:

Download des Beispielprojektes [1,88 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

Private Declare Function ReleaseCapture Lib "user32" () As Long

Private Declare Function SendMessage Lib "user32" Alias _
        "SendMessageA" (ByVal hwnd As Long, ByVal wMsg _
        As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const WM_SYSCOMMAND = &H112

Private Sub label1_MouseDown(Button As Integer, Shift As _
            Integer, X As Single, Y As Single)
            
    Call ReleaseCapture
    SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub

Private Sub Command1_Click()
  Unload Me
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von _.=:FR34K:=._FR4NK0 am 27.03.2003 um 21:50

Ach Gott funktioniert das gut
Visit us at www.fr34ks.de
jo

Kommentar von Joschko am 19.01.2003 um 18:16

Funktioniert super

Kommentar von Dirk am 12.11.2002 um 18:48

Hallo.

Also ich finde diesen Tipp ziemlich kompliziert. Es ist doch viel einfacher, das MouseMove-Ereignis zu verwenden; dann braucht man die API nicht und es sind nur ein paar Zeilen Code.

Aber ich meine, es geht auch so, wie's hier steht.

Dirk

Kommentar von Rack Michael am 16.02.2001 um 21:31

Geht es auch, wenn ich ein DIALOG-Fenster mache, dass ich "Show in Taskbar" mache, und dem Programm unbemerkt einen Namen gebe.
Da ich eine eigene Menüzeile habe, ist das notwendig, weil wenn ich "Me.Caption" mache, wird mir die WindowsLeiste angezeigt..
Thx.
Rack Michael