Вопрос

Для нашего приложения Windows Mobile я хочу включить на устройстве опцию ClearType.В соответствии с этот статье на MSDN, это необходимо сделать, установив следующий ключ реестра:

HKEY_LOCAL_MACHINE\SYSTEM\GDI\Cleartype

Но после установки именно этого ключа ничего не происходит.Даже программный сброс не включает его, а просто удаляет только что созданный мной ключ реестра.

Странно то, что когда я устанавливаю его вручную с помощью «Настройки->Система->Экран->ClearType», он работает сразу.И сравнение экспорта реестра до и после изменения настройки показывает, что меняется только ключ, упомянутый выше.

Я не совсем понимаю, почему это не сработает, если я сам изменю ключ реестра.Кто-нибудь, кто знает, что я здесь делаю не так?

Обновление] Похоже, решение должно сделать либо:

  • Отправьте сообщение WM_SETTINGCHANGE с правильными параметрами, например:

    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 1)

    Но пока это не сработало.Я предполагаю, что параметру wParam может потребоваться другое значение.

  • Или вызовите CreateEvent с соответствующим событием для изменений ClearType.Немного похоже на BacklightChangeEvent или SDKBacklightChangeEvent.Но пока я не видел никакой документации об этих событиях, поэтому не могу понять, что это будет за событие.

Это было полезно?

Решение

Я нашел решение сам.Оказывается, не нужно вносить изменения в реестр, а достаточно вызвать Системные параметрыИнформация с параметром SPI_SETFONTSMOOTHING достаточно, чтобы изменения были применены.

Это мой код, использующий .NET CF 2.0:

[DllImport("coredll.dll", SetLastError = true)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref int pvParam, uint fWinIni);

const uint SPI_SETFONTSMOOTHING = 0x004b;
const uint SPI_UPDATEINI = 0x1;

int pv = 0;
bool ret = SystemParametersInfo(SPI_SETFONTSMOOTHING, 1, ref pv, SPIF_UPDATEINIFILE);

Другие советы

Вы очищали реестр после изменения значения и перед программным сбросом?
Похоже, изменения не сохранились.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top