Traducción de coordenadas de eventos

La especificación 96 para los controles requiere que las coordenadas pasadas para los eventos desencadenados por el cambio de control de ser HIMETRIC a estar basados en puntos. Este cambio lleva el paso de eventos de coordenadas en línea con propiedades y métodos y, por tanto, la traducción de coordenadas ya no es responsabilidad del contenedor. Esto provoca ciertos problemas de compatibilidad en los que un control desencadena eventos mediante una base de coordenadas que no espera, esto solo debe ser un problema en el que un contenedor de control 96 hospeda un control anterior a 96 de la siguiente manera:

  • Cuando un contenedor anterior a 96 hospeda un control 96, el control presentará las coordenadas del evento como puntos, esto no debería provocar ningún problema en el contenedor, ya que el contenedor debe reconocer el tipo de parámetro.
  • Cuando un contenedor de 96 hospeda un control anterior a 96, el control presentará el contenedor con coordenadas y esperará que el contenedor sea necesario para cualquier traducción necesaria. Sin embargo, el contenedor 96 esperará que un control se ajuste a la especificación de controles 96 y presente sus coordenadas como puntos. El control usa el método TransformCoords en la interfaz IOleControlSite proporcionada por el contenedor de la misma manera que para que las propiedades y los métodos lo logren.

Como resultado, el usuario de un contenedor de 96 que hospeda controles anteriores a 96 deberá tener en cuenta que la traducción adicional de coordenadas puede ser necesaria cuando se desencadenan eventos.