我正在使用CHtmlView(IWebBrowser2的MFC包装器类)显示SVG文件,并且滚轮缩放正在做疯狂的事情。如果按住Control键并向上旋转鼠标Wheel,图像将按预期在鼠标光标处放大。问题是,向下旋转鼠标滚轮会完成相同的操作。似乎没有办法缩小。我尝试了控制键的每种组合,但都没有缩小。如果在Internet Explorer中打开SVG文件,则会得到完全相同的愚蠢行为。我也尝试过直接使用IWebBrowser2(不使用CHtmlView),并且再次出现相同的行为。
我尝试了各种SVG文件,但是它们都出现了该错误。如果我在Firefox中打开相同的SVG文件,则滚轮缩放将按预期工作。因此,我认为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)之类的代码;不可能解决我的问题,因为当前指针位置没有参数。
我在这个问题上搜索了好几个小时,但没有找到任何相关信息。我不敢相信我是第一个注意到这种行为的人,除非这是我的事情,因为我的操作系统配置有一些独特之处。