Feedback

C# - Fenster ohne Titelleiste bewegen

Veröffentlicht von am 7/10/2006
(1 Bewertungen)
Wenn bei einer Form die Titelleiste ausgeblendet wird, kann die Form nicht mehr bewegt werden.
Einfach die Ereignisse Mouse_Move und Mouse_Down mit diesem Code füllen. :)
private Point m_offset;
private Point m_Pos;

private void EM_MouseMove(object sender, MouseEventArgs e)
{
     if (e.Button == MouseButtons.Left)
     {
          m_Pos = Control.MousePosition;
          m_Pos.Offset(mouse_offset.X, mouse_offset.Y);
          Location = m_Pos;
     }
}

private void EM_MouseDown(object sender, MouseEventArgs e)
{
      m_offset = new Point(-e.X, -e.Y);
}

2 Kommentare zum Snippet

mars schrieb am 7/13/2006:
Eine einfachere Möglichkeit bietet Windows bereits an:

protected override void WndProc(ref Message m) {
const int WM_NCHITTEST = 0x84;
const int HTCAPTION = 0x02;

if (m.Msg == WM_NCHITTEST) {
m.Result = (IntPtr)HTCAPTION;
} else {
base.WndProc(ref m);
}
}
Kevin Schrader schrieb am 7/26/2010:
Besteht die Möglichkeit, das auf ein Objekt anzuwenden? (z.B. Media Player Plugin) Mein Fenster hat keinen Rahmen und keinen Hintergrund, der Media Player ist die einzige Möglichkeit wo man ziehen könne...
 

Logge dich ein, um hier zu kommentieren!