对于我们的 Windows Mobile 应用程序,我想在设备上启用 ClearType 选项。根据 MSDN 上的这篇文章,应该设置以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\GDI\Cleartype
但设置此特定键后没有任何反应。即使是软重置也无法启用它,而只是摆脱了我刚刚创建的注册表项。
奇怪的是,当我使用 Settings->System->Screen->ClearType 手动设置它时,它会立即起作用。并且比较更改设置之前和之后的注册表导出表明它只是上面提到的键发生了变化。
我不太明白为什么我自己更改注册表项时它不起作用。谁知道我在这里做错了什么?
[更新]看起来解决方案是:
使用正确的参数广播 WM_SETTINGCHANGE 消息,例如:
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 1)
但这到目前为止还没有奏效。我猜 wParam 参数可能需要不同的值。
或者使用相关事件调用 CreateEvent 以进行 ClearType 更改。有点像 BacklightChangeEvent 或 SDKBacklightChangeEvent 会起作用。但到目前为止,我还没有看到任何关于这些事件的文档,所以我无法确定事件会是什么。