在C/C 中启用高对比度模式

Enable High Contrast Mode in C/C++

本文关键字:对比度 模式 启用      更新时间:2023-10-16

我正在尝试在Visual中制作一个.exe文件,以实现高对比度模式。我读

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

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

上下,但我找不到完整的答案。uiParampvParam中有什么?请告诉我您在哪里找到答案!

SystemParametersInfo(SPI_SETHIGHCONTRAST, , , SPIF_SENDCHANGE)

uiparam

类型:uint

用法和格式取决于系统参数的参数 被查询或设置。有关全系统范围的更多信息 参数,请参阅uiaction参数。如果没有其他指示, 您必须为此参数指定零。

您将使用0为此。

pvparam

类型:pvoid

设置了HighConcontast可访问性功能的参数。这 PVPARAM参数必须指向包含的高对比度结构 新参数。

您需要使用高对比度结构,并使用要通过的数据。

这意味着您会做:

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

作为旁注,您可能希望将Windows环境返回到启动应用程序时所处的状态。

您应该使用SPI_GETHIGHCONCONSTRAST调用SystemParameterSinfo,然后将其更改之前,将HighConcontast Struct存储在以后,然后在应用程序退出时将系统还原到该HighConcontrast结构。