ダイアログアプリで
SCMPXのようにWindowをドラッグして移動してる時に
画面端近くならぴたっと画面端に吸い付くようにしたいのですが
できません。
考えて↓のように書いたのですが。。

//Window移動中
void CTestDlg::OnMoving(UINT fwSide, LPRECT pRect)
{
CDialog::OnMoving(fwSide, pRect);//Default

CRect rcDT;
GetDesktopWindow()->GetWindowRect(&rcDT);
if(pRect->top<=rcDT.top+30)
{
CRect rc(pRect);
rc.top=rcDT.top;
rc.bottom=rc.Height();
MoveMainWindow(&rc);
}
}
これだとなぜか画面上部に近づくと
ドラッグ中のカーソル位置<->画面端に引っ付いた位置
をすごい速さで行ったり来たりして思うように動いてくれてません。
説明難しいですが。。
どこが間違っているのでしょうか?