0

我正在尝试在 Visual 中创建一个启用高对比度模式的 .exe 文件。我读

https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-systemparametersinfoa

https://docs.microsoft.com/en-us/windows/desktop/api/winuser/ns-winuser-taghighcontrasta

上下,但我找不到完整的答案。uiParam和中的内容是什么pvParam?请告诉我你在哪里找到答案!

SystemParametersInfo(SPI_SETHIGHCONTRAST, , , SPIF_SENDCHANGE)

4

1 回答 1

3

用户界面参数

类型:UINT

一个参数,其用法和格式取决于被查询或设置的系统参数。有关系统范围参数的更多信息,请参阅 uiAction 参数。如果没有另外说明,您必须为此参数指定零。

您将为此使用 0。

参数

类型:PVOID

设置 HighContrast 辅助功能的参数。pvParam 参数必须指向包含新参数的 HIGHCONTRAST 结构。

对于这个参数,您需要一个 HIGHCONTRAST 结构,其中包含您要传递的数据。

这意味着您将执行以下操作:

HIGHCONTRAST hc;
ZeroMemory(&hc, sizeof(HIGHCONTRAST));
hc.cbSize = sizeof(HIGHCONTRAST);
hc.dwFlags = HCF_HIGHCONTRASTON;
SystemParametersInfo(SPI_SETHIGHCONTRAST, 0, &hc, SPIF_SENDCHANGE);

附带说明一下,您可能希望将 Windows 环境恢复到应用程序启动时的相同状态。

您应该在更改它之前使用 SPI_GETHIGHCONTRAST 调用 SystemParametersInfo,存储该 HIGHCONTRAST 结构以供以后使用,然后在您的应用程序退出时将系统恢复到该 HIGHCONTRAST 结构。

于 2019-03-03T18:40:06.003 回答