LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){
static int cursorStatus;
switch (msg) {
//...
case WM_KEYDOWN:
//...
if(!cursorStatus) {
ShowCursor(false);
cursorStatus = 1;
}
break;
case WM_MOUSEMOVE:
//...
if(cursorStatus) {
ShowCursor(true);
cursorStatus = 0;
}
break;
}
//...
return DefWindowProc(hWnd,msg,wParam,lParam);
}
ShowCursor(false),是让鼠标的“显示值”减一,反之true则是加一,因此需要应该辅助的变量来控制,否则遇到多个WM_MOUSEMOVE后鼠标的"显示值"会变得很大。