Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net SPI_GetMouseh超时时间能为零吗?_.net_Windows_Winforms_Winapi_Hover - Fatal编程技术网

.net SPI_GetMouseh超时时间能为零吗?

.net SPI_GetMouseh超时时间能为零吗?,.net,windows,winforms,winapi,hover,.net,Windows,Winforms,Winapi,Hover,在我的WinForms应用程序中,我使用的是,它依次调用with(根据ILSpy) 我正在使用属性的返回值设置窗体中某些计时器的间隔 这一切都很好 现在我在问自己,这是否是不够的,因为在一些“奇怪”的系统上它可能是零(或更少)。在这种情况下,我必须提供非零回退 既然我找不到我假设的证据,有人能给我带来一些线索吗?来自MSDN SPI_GetMouseh超时: 检索鼠标指针必须指向的时间(以毫秒为单位) 停留在TrackMouseEvent的悬停矩形中以生成 WM_鼠标悬停信息。pvParam参数

在我的WinForms应用程序中,我使用的是,它依次调用with(根据ILSpy)

我正在使用属性的返回值设置窗体中某些计时器的间隔

这一切都很好

现在我在问自己,这是否是不够的,因为在一些“奇怪”的系统上它可能是零(或更少)。在这种情况下,我必须提供非零回退

既然我找不到我假设的证据,有人能给我带来一些线索吗?

来自MSDN

SPI_GetMouseh超时: 检索鼠标指针必须指向的时间(以毫秒为单位) 停留在TrackMouseEvent的悬停矩形中以生成 WM_鼠标悬停信息。pvParam参数必须指向一个UINT 接收时间的变量

SPI_设置鼠标超时: 指定的时间应介于用户\u计时器\u最大值和 用户\定时器\最小值。如果uiParam小于USER_TIMER_MINIMUM,则 函数将使用用户计时器\u最小值。如果uiParam大于 用户定时器最大值,该函数将为用户定时器最大值

设置定时器功能 如果UElaver小于用户计时器最小值(0x0000000A),则超时 设置为用户\计时器\最小值。如果失效大于 用户\计时器\最大值(0x7FFFFFFF),超时设置为 用户\定时器\最大值


是的,那么这是如何回答我的问题的呢?
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。