My program is a chromeless window and I want to move the window when user drag any part of my dialog. Once WM\_SYSCOMMAND is used, all subsequent mouse events are lost.

First I wrote a program to capture the mouse events and all working fine with WTL. 

```
BEGIN_MSG_MAP(CMainDlg)
    MSG_WM_LBUTTONUP(OnMouseUp)
    MSG_WM_LBUTTONDOWN(OnMouseDown)
....
LRESULT OnMouseDown ( UINT uKeys, CPoint pt ) {
    print ("on mouse down");
    return 0;
}
LRESULT OnMouseUp ( UINT uKeys, CPoint pt ) {
    print ("on mouse up");
    return 0;
}

```

Then I change onMouseDown above to,

```
LRESULT OnMouseDown ( UINT uKeys, CPoint pt ) {
    print ("on mouse down");
    this->SendMessageW(WM_SYSCOMMAND, SC_MOVE|0x0002);
    return 0;
}

```

The drag is working and the windows move along with the mouse. However, OnMouseUp event is no longer fired.

Tried many different approach using WM\_NCHITTEST, or ProcessMessage setHandled to true/false without success.

Much appreciate if anyone has any suggestions :)