事件坐标转换

控件的 96 规范要求将控件触发的事件传递的坐标从 HIMETRIC 更改为基于点。 此更改使坐标的事件传递与属性和方法保持一致,因此坐标转换不再是容器的责任。 这会引发某些兼容性问题,即控件使用不需要的坐标库触发事件,这个问题应只归因于 96 版本的控件容器承载了 96 版本之前的较旧控件,如下所示:

  • 当 96 版本前的较旧容器承载 96 版本控件时,该控件会将事件坐标显示为点,这不应导致容器出现任何问题,因为容器应能识别参数类型。
  • 当 96 版本容器承载 96 版本前的控件时,该控件将显示具有坐标的容器,并期望容器进行任何必要的转换。 但是,96 版本容器将希望控件符合 96 版本的控件规范,并将其坐标显示为点。 该控件在容器提供的 IOleControlSite 接口上使用 TransformCoords 方法,与通过属性和方法实现此目的的方式相同。

因此,承载 96 版本之前控件的 96 版本容器的用户需要注意,触发事件时可能需要进一步转换坐标。