.net SPI_GetMouseh超时时间能为零吗?
在我的WinForms应用程序中,我使用的是,它依次调用with(根据ILSpy) 我正在使用属性的返回值设置窗体中某些计时器的间隔 这一切都很好 现在我在问自己,这是否是不够的,因为在一些“奇怪”的系统上它可能是零(或更少)。在这种情况下,我必须提供非零回退 既然我找不到我假设的证据,有人能给我带来一些线索吗?来自MSDN SPI_GetMouseh超时: 检索鼠标指针必须指向的时间(以毫秒为单位) 停留在TrackMouseEvent的悬停矩形中以生成 WM_鼠标悬停信息。pvParam参数必须指向一个UINT 接收时间的变量 SPI_设置鼠标超时: 指定的时间应介于用户\u计时器\u最大值和 用户\定时器\最小值。如果uiParam小于USER_TIMER_MINIMUM,则 函数将使用用户计时器\u最小值。如果uiParam大于 用户定时器最大值,该函数将为用户定时器最大值 设置定时器功能 如果UElaver小于用户计时器最小值(0x0000000A),则超时 设置为用户\计时器\最小值。如果失效大于 用户\计时器\最大值(0x7FFFFFFF),超时设置为 用户\定时器\最大值.net SPI_GetMouseh超时时间能为零吗?,.net,windows,winforms,winapi,hover,.net,Windows,Winforms,Winapi,Hover,在我的WinForms应用程序中,我使用的是,它依次调用with(根据ILSpy) 我正在使用属性的返回值设置窗体中某些计时器的间隔 这一切都很好 现在我在问自己,这是否是不够的,因为在一些“奇怪”的系统上它可能是零(或更少)。在这种情况下,我必须提供非零回退 既然我找不到我假设的证据,有人能给我带来一些线索吗?来自MSDN SPI_GetMouseh超时: 检索鼠标指针必须指向的时间(以毫秒为单位) 停留在TrackMouseEvent的悬停矩形中以生成 WM_鼠标悬停信息。pvParam参数
是的,那么这是如何回答我的问题的呢?
SPI\u setmousehothering
的有效最小值是USER\u TIMER\u minimum
。这也是SetTimer
的最小有效值。那就用计时器吧,我真不敢相信我要解释这个。问题是悬停时间是否可以等于或小于零?有三条证据可以证明这一点<代码>1。SPI\u GETMOUSEHOVERTIME返回一个UINT
。UINT的最小值为零。所以现在我们需要知道结果是否可以是零<代码>2。查看SPI\u setmousehothering,我们会发现有效下限是用户计时器\u最小值
<代码>3。查看SetTimer
向我们显示USER\u TIMER\u MINIMUM
是一个十进制值为10的常量。所以最后的答案是SPI_getmouseh超时时间永远不能小于10。