win32api怎么防止鼠标快速拖动无边框窗口出界
win32api如何防止鼠标快速拖动无边框窗口出界
我用api做了一个无边框窗口,并写了鼠标拖动窗口移动的代码,一般移动不成问题,但鼠标快速拖动时,就会出界,窗口移动速度跟不上了,请问应该怎么办?
WndProc函数部分代码:
------解决方案--------------------
你的做法太麻烦了,
简单点:一句话搞定
在LButtonDown函数中
SendMessage(WM_NCRBUTTONDOWN,HTCAPTION,0);
我用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);