Rya*_*ies 3 c winapi user-experience
我正在用C编写Windows应用程序.
我通过处理WM_SETCURSOR消息将鼠标光标隐藏在窗口的客户区域中:
case WM_SETCURSOR:
{
static BOOL HideCursor = FALSE;
if ((LOWORD(LParam) == HTCLIENT) && !HideCursor)
{
HideCursor = TRUE;
ShowCursor(FALSE);
}
else if ((LOWORD(LParam) != HTCLIENT) && HideCursor)
{
HideCursor = FALSE;
ShowCursor(TRUE);
}
Result = DefWindowProc(Window, Message, WParam, LParam);
break;
}
Run Code Online (Sandbox Code Playgroud)
这很好用,但它有点尴尬,因为鼠标光标一进入窗口的客户区就会立即消失.例如,当用户试图将光标移向工具栏按钮或手动调整窗口大小时,用户可以很容易地忘记鼠标光标"应该"的位置.
如何在那里添加一个或两个延迟,以便用户可以将鼠标移动到窗口的客户区域而鼠标不会立即消失,但是如果鼠标光标在客户区域中悬停超过一秒或两秒钟,它消失了?