我正在尝试在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)
答案 0 :(得分:3)
uiParam
类型:UINT
其用法和格式取决于系统参数的参数 被查询或设置。有关系统范围的更多信息 参数,请参见uiAction参数。如果没有其他说明, 您必须为此参数指定零。
为此,您将使用0。
pvParam
类型: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结构。