Для SVG в CHtmlView (элемент управления веб-обозревателя) колесо увеличивается, но никогда не уменьшается - PullRequest
0 голосов
/ 15 января 2019

Я использую CHtmlView (класс-оболочку MFC для IWebBrowser2), чтобы показать файл SVG, а масштабирование колес делает что-то сумасшедшее. Если я удерживаю клавишу «Control» и вращаю колесико мыши ВВЕРХ, изображение увеличивается в направлении курсора мыши, как и ожидалось. Проблема в том, что вращение колесика мыши ВНИЗ делает то же самое. Кажется, нет никакого способа уменьшить OUT. Я перепробовал каждую комбинацию клавиш управления, и ни одна из них не была уменьшена. Если я открываю файл SVG в Internet Explorer, я получаю точно такое же глупое поведение. Я также попытался использовать IWebBrowser2 напрямую (без CHtmlView), и снова поведение такое же.

Я пробовал различные SVG-файлы, но все они показывают ошибку. Если я открою тот же файл SVG в Firefox, масштабирование колес будет работать как положено. Итак, я заключаю, что в SVG-файле нет ничего особенного.

Я попытался использовать CHtmlView, чтобы открыть файл PDF, и снова масштабирование колес отлично работает в обоих направлениях. Это заставляет меня поверить, что проблема в том, какой компонент Internet Explorer использует для отображения файлов SVG. Что это за компонент? Поддержка SVG встроена в IE 10 или используется плагин?

Я использую Windows 7, Internet Explorer версии 10.0.9200.16737. Я пытался использовать FEATURE_BROWSER_EMULATION, чтобы изменить версию IE на 10000 для моего приложения, но это не имело никакого значения. Я не ожидал, что это поможет, поскольку Internet Explorer также показывает ошибку самостоятельно, без моего приложения.

Я рассмотрел возможность написания пользовательского кода масштабирования, но это выглядит сомнительно, потому что мое требование заключается не только в увеличении / уменьшении, но в увеличении / уменьшении в позиции указателя. Код, такой как ExecWeb (OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DODEFAULT, & vZoom, NULL); вряд ли решит мою проблему, потому что нет параметра для текущей позиции указателя.

Я искал эту проблему часами и удивительно не нашел никакой соответствующей информации. Я не могу поверить, что я первый заметил это поведение, ЕСЛИ это происходит только со мной, потому что в моей конфигурации ОС есть что-то уникальное.

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