Поделиться через


Перевод координат событий

Спецификация 96 для элементов управления требует, чтобы координаты, передаваемые для событий, вызванных изменением элемента управления, переходили от HIMETRIC к точкам на основе точек. Это изменение приводит к тому, что событие передает координаты в соответствии со свойствами и методами, поэтому преобразование координат больше не несет ответственности за контейнер. Это вызывает некоторые проблемы совместимости, когда элементы управления запускают события с использованием базы координат, которую он не ожидает, это может быть только проблема, из-за которой контейнер 96 элементов управления размещает старый элемент управления до 96, как показано ниже.

  • Когда старый контейнер до 96 размещает элемент управления 96, элемент управления будет представлять координаты события в качестве точек, это не должно привести к проблемам контейнера, так как контейнер должен распознать тип параметра.
  • Когда 96-й контейнер размещает элемент управления до 96, элемент управления будет представлять контейнер с координатами и ожидать, что контейнер будет переведен в любой необходимый перевод. Однако контейнер 96 ожидает, что элемент управления будет соответствовать спецификации 96 элементов управления и представить его координаты в качестве точек. Элемент управления использует метод TransformCoords в интерфейсе IOleControlSite, предоставленном контейнером так же, как и для свойств и методов для достижения этого.

В результате пользователю 96 контейнеров, на которых размещаются элементы управления до 96, необходимо учитывать, что при срабатывании событий может потребоваться дальнейшее преобразование координат.