tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
3412
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von CongoFX
    CongoFX CongoFX ist offline Mitglied
    Registriert seit
    Feb 2007
    Beiträge
    18
    Hallo Leute,

    wie wird ein Fenster (Hauptfenster der Application) über click auf ein Object mit den MouseDown und MouseMove Events verschoben?

    Hintergrund ist der, dass der WindowStyle auf none gestellt ist, also keinen Rahmen um mein Hauptfenster ist, und ich meine Titelbar selber gezeichnet habe. Nun möchte ich wenn der Benutzer auf diese Titelbar clickt und die Maustaste gedrückt hält, das Fenster auf dem Desktop verschieben kann.

    Unter NET 2.0 lief das wunderbar über Control.Handle, aber das gibt´s nun nicht mehr unter NET 3.0.

    Der NET 2.0 Code sieht wie folgt aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    //const and dll functions for moving form
            public const int WM_NCLBUTTONDOWN = 0xA1;
            public const int HT_CAPTION = 0x2;
     
            [DllImportAttribute("user32.dll")]
            public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
     
            [DllImportAttribute("user32.dll")]
            public static extern bool ReleaseCapture();
     
            //call functions to move the form in your form's MouseDown event
            private void MoveWindow(MouseEventArgs e)
            {
                //  Button released
                if (e.Button == MouseButtons.Left)
                {
                    ReleaseCapture();
                    SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
                }
            }
     
            private void MainPanelTopLeft_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
            {
                MoveWindow(e);
            }

    Tja, aber das funktioniert nun nicht mehr.

    Hat irgend jemand Ideen? Ich suche mich schon seit Stunden dusselig...

    Vielen Dank im Voraus
     

  2. #2
    mwiceman mwiceman ist offline Grünschnabel
    Registriert seit
    Mar 2007
    Beiträge
    1
    hab mir gerade die '08er beta gezogen und gleiches problem. hier die lösung.....

    http://www.vb-fun.de/cgi-bin/forumar...mer=1558#Atext

    t einwandfrei; einzig die "VB6" Zeile musste durch e.X bzw e.Y ersetzen.




    edit:

    aso merk grad, dass de ja c# code hast. lol. naja, aber wird sich ja bestimmt umschreiben lassen
     

Ähnliche Themen

  1. Fenster verschieben/zentrieren
    Von andyK im Forum Microsoft Windows
    Antworten: 6
    Letzter Beitrag: 08.08.08, 17:27
  2. Fenster unter WinXP verschieben
    Von Ultraflip im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 20.11.06, 14:01
  3. Fenster verschieben mit API-Funktion 'MoveWindow'
    Von RIDI2oo5 im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 18.01.05, 09:07
  4. php-Fenster anpassen/verschieben
    Von GFX-Händchen im Forum HTML & XHTML
    Antworten: 6
    Letzter Beitrag: 29.01.04, 09:51
  5. Fenster verschieben/anpassen
    Von GFX-Händchen im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 28.01.04, 16:11