Dragging windows

So, you want to drag a window without using the real title bar?

I have seen lots of people using their own code in the mouse move event to do this, and I've even done it myself.

Until I found the following code:

SendMessage Form.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&"); ?>

This should go in the mousedown event of the control/object you want to drag the window by.

It has various advantages over home grown code:

  1. It's faster and rarely suffers from flickering.
  2. It's easier. Two lines once compared to a huge routine (or two)?
  3. It obeys the windows rules and settings on drawing windows while moving.

PS, If you want to use this to drag a control, just replace Form.hWnd with Control.hWnd. This will NOT work with windowless controls like Labels or ImageBoxes.

For more Information, contact us via email at info@earlsoft.co.uk.