Включение масштабирования в режиме IE8 в элементе управления браузера с помощью DOCHOSTUIFLAG_DPI_AWARE - PullRequest
1 голос
/ 20 сентября 2011

В соответствии с этим http://msdn.microsoft.com/en-us/library/cc849094(v=vs.85).aspx#OptInHighDPI вы можете настроить управление веб-браузером с использованием масштабирования в стиле IE8 вместо стандартного масштабирования IE7. В нем говорится, что вы должны указать DOCHOSTUIFLAG_DPI_AWARE в вашей реализации IDocHostUIHandler.GetHostInfo.

Я видел несколько примеров приложений на C #, которые реализуют IDocHostUIHandler и вызывают ICustomDoc.SetUIHandler в обработчике событий DocumentCompleted, чтобы связать вещи, и я написал небольшое тестовое приложение в этом направлении. Моя реализация GetHostInfo называется, но масштабирование IE8 не вступает в силу сразу. Единственный раз, когда я видел это на самом деле, происходит после того, как моя заставка Windows 7 выключается после того, как я перемещаю мышь / касаюсь клавиатуры.

Это заставляет меня думать либо:

  1. DocumentCompleted не является правильным событием, в котором можно указывать этот конкретный флаг (т. Е. Есть соответствующее событие, о котором я не знаю)
  2. Использование SetUIHandler в любом обработчике событий элемента управления браузером не будет работать (т. Е. Использовать метод IOleClientSite, упомянутый здесь http://weborama.blogspot.com/2004/10/mshtml-hosting-idochostuihandler.html)

У кого-нибудь есть успешный опыт работы с DOCHOSTUIFLAG_DPI_AWARE?

1 Ответ

0 голосов
/ 17 октября 2011

Я закончил тем, что сделал это способом IOleClientSite, который вызвал масштабирование в стиле IE8 в элементе управления браузера. Однако дочерние окна по-прежнему открываются с увеличением 100%, а не наследуют настройку элемента управления 125%.

Мы остановились на некодовом решении (в любом случае, для управления браузером), которое должно было установить пару значений реестра:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom]
"ZoomDisabled"=dword:00000001
"ResetTextSizeOnStartup"=dword:00000001

В сочетании с тем, что мы используем функцию Windows для больших шрифтов (120 DPI), все окна и элементы управления браузера блокируются с масштабом по умолчанию 125%.

Некоторые веб-приложения нуждаются в обновлении, поскольку масштабирование IE8 влияет на размер всех элементов HTML (например, изображений, ширины стилей и высоты), а не только на шрифты, такие как IE6 и 7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...