Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las API de manipulación directa le permiten crear excelentes experiencias de usuario de movimiento panorámico, zoom y arrastre. Para ello, procesa la entrada táctil en una región o objeto, genera transformaciones de salida y aplica las transformaciones a los elementos de la interfaz de usuario. Puede usar la manipulación directa para optimizar la capacidad de respuesta y reducir la latencia a través del procesamiento de entrada fuera del subproceso, las pruebas de posicionamiento opcionales de entrada fuera del subproceso y la predicción de entrada/salida.
Cualquier aplicación que use Manipulación directa para procesar interacciones táctiles muestra las animaciones fluidas de Windows 8 y los comportamientos de comentarios de interacción que cumplen las directrices de para las interacciones comunes del usuario.
Público para desarrolladores
La API de manipulación directa es para desarrolladores experimentados que conocen C/C++, tienen un conocimiento sólido del modelo de objetos de componentes (COM) dey están familiarizados con los conceptos de programación de Windows.
Requisitos en tiempo de ejecución
La manipulación directa se introdujo en Windows 8. Se incluye en versiones de 32 y 64 bits.
¿Por qué usar DirectManipulation?
Controla las interacciones de una manera sencilla y coherente
La manipulación directa funciona declarando previamente los comportamientos e interacciones de una región o objeto. Por ejemplo, una página web se suele configurar para el movimiento panorámico y el zoom. En tiempo de ejecución, la entrada se asocia a esta región o objeto a través de una llamada API simple. A partir de este punto, la manipulación directa realiza todo el trabajo pesado de procesar la entrada, aplicar restricciones y personalidad, y generar las transformaciones de salida.
Creación de aplicaciones táctiles con capacidad de respuesta
Para optimizar la capacidad de respuesta y minimizar la latencia, el procesamiento de manipulación directa se produce en un subproceso independiente independiente del subproceso de la interfaz de usuario. Como resultado, las transformaciones de salida se pueden ejecutar en paralelo a la actividad en el subproceso de la interfaz de usuario. La actividad de subproceso de interfaz de usuario puede incluir lógica de la aplicación, representación, diseño y cualquier otra cosa que consuma ciclos en el procesador.
Flexibilidad de implementación
Las interfaces incluidas con Manipulación directa proporcionan compatibilidad completa con el control de entradas, el reconocimiento de interacciones, las notificaciones de comentarios y las actualizaciones de la interfaz de usuario. Las interfaces también incorporan servicios del sistema como DirectComposition.
Conceptos básicos
La implementación de manipulación directa más básica consta de una ventanilla de , contenidoy interacciones de . El de ventanilla de es una región que puede recibir y procesar la entrada de las interacciones del usuario. También es la región del contenido que es visible para el usuario final. El contenido es el objeto real que los usuarios finales pueden ver y es lo que mueve o escala en respuesta a una interacción del usuario. El usuario principal interacciones (también conocido como manipulaciones ) compatibles con la manipulación directa son movimiento panorámico y zoom. Estas interacciones aplican una transformación de traducción o escala al contenido dentro de la ventanilla, respectivamente. Se pueden configurar varias ventanillas (cada una con su propio contenido) en una sola ventana para crear una experiencia de interfaz de usuario enriquecida.
En esta ilustración se muestra una implementación básica de manipulación directa antes y después del movimiento panorámico.
Durante la inicialización de la manipulación directa, se crea una instancia de un objeto DCompDirectManipulationCompositor y está asociado a la manipulación directa. Este objeto es un contenedor alrededor de DirectComposition, que es el compositor del sistema. El objeto es responsable de aplicar las transformaciones de salida y impulsar las actualizaciones visuales.
Un contacto representa un punto táctil identificado por el pointerId de proporcionado en el mensaje WM/_POINTERDOWN . Cuando se recibe un mensaje de WM_POINTERDOWN, la aplicación llama a SetContact. La aplicación notifica a la manipulación directa los contactos que se deben controlar y las ventanillas que deben reaccionar a esos contactos. La entrada del teclado y el mouse tienen pointerId valores especiales para que la manipulación directa pueda controlarlos adecuadamente.
En nuestro caso básico anterior, cuando SetContact se denominan algunas cosas:
- Cuando el usuario realiza un movimiento panorámico, se envía un mensaje wm/_POINTERCAPTURECHANGED a la aplicación para notificar que la manipulación directa ha consumido el contacto.
- Cuando el usuario mueve los movimientos, la ventanilla activa los eventos de actualización que usa el contenedor DirectComposition para controlar las actualizaciones visuales de la pantalla. Para un movimiento panorámico de usuarios en una ventanilla, el contenido parecerá moverse sin problemas debajo del contacto.
- Cuando el usuario eleva el contacto, el usuario ve que el contenido continúa moviéndose a medida que pasa a una animación de inercia, ralentizando gradualmente hasta que llega a su lugar de descanso final.
Procesamiento de entrada de teclado y mouse
La manipulación directa permite reenviar los mensajes de teclado y mouse manualmente desde el subproceso de la interfaz de usuario de la aplicación a través de la API de ProcessInput de modo que la manipulación directa pueda controlarlos adecuadamente.
DirectManipulation y HWND
La manipulación directa está asociada a un HWND win32 para recibir y procesar mensajes de entrada de puntero para esa ventana. A medida que la manipulación directa calcula los valores de salida, realiza devoluciones de llamada asincrónicas en el modelo de objetos componentes (COM) de manipulación directa objetos que se implementan en la aplicación. Estas devoluciones de llamada informan a la aplicación sobre la transformación que se aplicó a los objetos . La manipulación directa se activa en el HWND especificado llamando a Activar.
Documentación complementaria
ventanillas y de contenido
entrada de procesamiento de con directManipulation
entrada táctil proceso con de ejemplo de manipulación directa