Включить режим высокой контрастности в C / C ++ - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь создать файл .exe в Visual, который включает режим высокой контрастности.Я читаю

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)

1 Ответ

0 голосов
/ 03 марта 2019

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 в то же состояние, в котором она была при запуске приложения.

Вы должны вызвать SystemParametersInfo с SPI_GETHIGHCONTRAST, прежде чем изменить его, сохранить эту структуру HIGHCONTRAST для последующего использования, а затем восстановить систему до этой структуры HIGHCONTRAST при выходе из приложения.

...