2

在 Windows 10 中,高对比度主题是唯一在边框方面与默认 Windows 10 主题不同的主题。

为此,我想检测用户是否处于 Windows 10 中的高对比度主题中。

4

2 回答 2

3

确定系统当前是否处于高对比度模式的方法是使用SystemParametersInfo获取包含HIGHCONTRAST您需要的所有信息的结构。

一个简单的例子:

HIGHCONTRAST info = { 0 };
info.cbSize = sizeof(HIGHCONTRAST);
BOOL ok = SystemParametersInfoW(SPI_GETHIGHCONTRAST, 0, &info, 0);

if (ok)
{
    if (info.dwFlags & HCF_HIGHCONTRASTON)
    {
        wcout << L"High Contrast On" << endl;
    }
    else
    {
        wcout << L"High Contrast Off" << endl;
    }
}

HIGHCONTRAST有关其他可用标志的信息,请参阅文档。

于 2016-06-21T20:50:02.310 回答
1

我们可以使用AccessibilitySettings类来获得高对比度的信息。并使用AccessibilitySettings.HighContrast来指示系统高对比度功能是打开还是关闭。

例如:

Windows::UI::ViewManagement::AccessibilitySettings^ accessibilitySettings = ref new Windows::UI::ViewManagement::AccessibilitySettings;
Boolean ishighcontrast = accessibilitySettings->HighContrast;
于 2016-06-22T09:57:24.333 回答