Traducción de coordenadas de eventos

La especificación 96 de los controles requiere que las coordenadas pasadas para los eventos desencadenados por el cambio de control sean HIMETRIC a estar basados en puntos. Este cambio aporta el paso de eventos de coordenadas en línea con las propiedades y los 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 por el que un contenedor de control 96 hospeda un control anterior a 96 anterior de la siguiente manera:

  • Cuando un contenedor anterior a 96 hospeda un control 96, el control presentará las coordenadas de 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 realice cualquier traducción necesaria. Sin embargo, el contenedor 96 espera que un control se ajuste a la especificación de 96 controles 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 es posible que sea necesaria una traducción adicional de coordenadas cuando se activan los eventos.