0

具体来说,当通过 Windows 控制面板显示设置增加 DPI 时,以下代码中的“结果”是否会发生变化?

UINT result = 0;
if(SystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT, 0, &result, 0) != FALSE)
{
    result = ?;
}

我自己无法检查的原因是我无法更改我正在使用的计算机上的 DPI 设置,因为管理员已禁用该选项。

4

1 回答 1

0

文档不清楚,但一般来说第三个参数只是输入/输出,因为这里的 Win32 API 被重载为 getter 和 setter。我不希望这会在 SET 调用上改变,但在你上面的 GET 调用上,是的,它会改变以指示当前值。您是否打算实际发布 SET 电话?问题文本暗示您正在尝试设置该值。

对于以下代码,该值不应更改:

UINT result = REQUIRED_NEW_VALUE;
if(SystemParametersInfo(SPI_SETFOCUSBORDERHEIGHT, 0, &result, 0) != FALSE)
{
    // result == the same as what was input
}

对于您发布的代码,result将从 0 更改为当前配置的值:

UINT result = 0;
if(SystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT, 0, &result, 0) != FALSE)
{
    // result == the current configured value
}
于 2010-11-09T11:54:20.857 回答