读书人

win32api怎么防止鼠标快速拖动无边框窗

发布时间: 2013-02-17 10:44:46 作者: rapoo

win32api如何防止鼠标快速拖动无边框窗口出界
我用api做了一个无边框窗口,并写了鼠标拖动窗口移动的代码,一般移动不成问题,但鼠标快速拖动时,就会出界,窗口移动速度跟不上了,请问应该怎么办?
WndProc函数部分代码:

    static POINT ptOrigin;
static bool bMove = false;

case WM_LBUTTONDOWN:
{
ptOrigin.x = LOWORD(lParam);
ptOrigin.y = HIWORD(lParam);
bMove = true;
}
break;
case WM_MOUSEMOVE:
{
if(bMove == true)
{
POINT ptMoved;
RECT rtWin;
GetWindowRect(hwnd, &rtWin);
ptMoved.x = rtWin.left;
ptMoved.y = rtWin.top;
ptMoved.x += LOWORD(lParam) - ptOrigin.x;
ptMoved.y += HIWORD(lParam) - ptOrigin.y;
SetWindowPos(hwnd, HWND_NOTOPMOST, ptMoved.x, ptMoved.y,
-1, -1, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOOWNERZORDER);

}
}
break;
case WM_LBUTTONUP:
{
bMove = false;
}
break;

[解决办法]
你的做法太麻烦了,
简单点:一句话搞定
在LButtonDown函数中
SendMessage(WM_NCRBUTTONDOWN,HTCAPTION,0);

读书人网 >C++

热点推荐