在WndProc這個回調函數裏加個鼠標移動消息(WM_MOUSEMOVE)的判斷即可。
由於這個消息很靈敏,妳感覺鼠標沒有動,實際也退出了。所以,在這個消息下面再加上壹個移動距離的判斷即可。距離越短,鼠標移動時退出檢測就越靈敏。
例如:
case?WM_MOUSEMOVE:{
static?int?xPos?=?0;//?上壹次鼠標位置
static?int?yPos?=?0;
//?如果是0則是第壹次接收,存儲第壹次鼠標位置
if?(xPos?==?0?||?yPos?==?0)
{
xPos?=?LOWORD(lParam);
yPos?=?HIWORD(lParam);
return?0;
}//?如果不是第壹次接收,說明已有上次鼠標位置數據,與本次位置判斷壹下移動距離(即靈敏度)即可
else?if?(?abs(xPos?-?LOWORD(lParam))?>?100?||?abs(yPos?-HIWORD(lParam))?>?100?)
{
PostQuitMessage(0);//?鼠標移動大於100就退出
}
return?0;
}
abs求出絕對值來判斷,可以保證如果算出負數距離仍能正確退出。lParam包含鼠標的xy坐標,需要LOWORD和HIWORD來取出。
實際上很簡單,對吧?