Compartir a través de


Este artículo proviene de un motor de traducción automática.

Inside Windows 7

Funciones multiTouch en Windows 7

Yochay Kiriaty

En este artículo se describe:

  • Modelos de programación multitouch
  • Gestos
  • Mensajes sin formato de contacto
En este artículo usa las tecnologías siguientes:
Windows 7

Este artículo se basa en una versión preliminar de Windows 7. Detalles están sujetos a cambios.

Contenido

Introducción a Windows 7 Multitouch
Modelos de programación de la plataforma Multitouch Windows 7
Trabajar con movimientos
Trabajar con mensajes Touch RAW de Windows
Resumen

Éste es el tercer artículo de una serie de artículos acerca de Windows 7. La serie se centra en nuevas experiencias de usuario que los desarrolladores pueden puntear en que sus aplicaciones brillen en Windows 7. Parte 1 trata las bibliotecas. Parte 2 trata las API de la barra de tareas. Parte 3 cubre multitouch capacidades de Windows 7. Descargue a ahora Windows 7 Release Candidate para ayudarle a sacar el máximo partido de este artículo.

Introducción a Windows 7 Multitouch

en Windows 7 nos han enriquece la experiencia de Windows con toque, realizar tocar a un ciudadano de primera clase como otra forma de interactuar con su PC junto con el mouse (ratón) y el teclado. En los últimos años, nos han sido testigos una amplia gama de dispositivos multitouch que ha generado una experiencia de usuario muy positivo. Por tanto, sólo es natural para introducir dicha compatibilidad multitouch en Windows 7 como una característica fundamental de Windows.

Con la plataforma Windows 7 Multitouch tiene libertad para interactuar directamente con el equipo. Por ejemplo, es posible llegar y lentamente desplazarse por las imágenes directamente desde el Explorador de Windows, o gesto y desplazarse por ellos rápidamente. Es importante comprender que didn’t creamos un Multitouch Shell especial de Windows 7. No hay ningún explorador de Windows especial que sólo está disponible en dispositivos multitouch. El ejemplo más sencillo es la 7 barra de tareas salto listas de Windows. Cuando utiliza el mouse para haga clic con el botón secundario en cualquier icono en la barra de tareas, verá su lista de salto correspondiente. Por ejemplo, haga clic con el botón secundario en el icono de Windows Live Messenger muestra salto lista Live Messenger ’s. Pero, ¿cómo puede hacer clic con el botón secundario en mediante multitouch? Simplemente toque el icono de Messenger Live y arrastre con el dedo, como se muestra en figura 1.

fig01.gif

Figura 1 utilizar Multitouch en Live salto lista ’s Messenger

Realizar ese movimiento de arrastre muestra salto listas Live Messenger ’s. Como puede ver en la figura 2 , la lista de salto de desencadena táctil muestra el mismo contenido como en la lista de salto estándar haga clic con el botón secundario del mouse. La imagen derecha muestra el ’s salto lista Messenger Live mediante táctil. El espaciado entre cada elemento en la lista habilitado multitouch de saltos es mayor que el espaciado entre cada elemento de la imagen izquierda, que es el valor predeterminado haga clic con el botón secundario saltar a la lista.

fig01.gif

Figura 2 Multitouch y vistas estándar de salto listas

Windows Live Messenger es sólo un ejemplo donde Windows 7 doesn’t crear un nuevo conjunto de interfaces de usuario sólo para escenarios de contacto, pero en su lugar facilita la fusión en la infraestructura existente. La barra de tareas es sólo un ejemplo de muchas experiencias multitouch optimizados que se suministra con Windows 7, como el visor XPS, Visor de fotos de Windows y IE8.

Modelos de programación de la plataforma Multitouch Windows 7

Para proporcionar soluciones de Windows con well-rounded todo tipo de aplicaciones, la plataforma de interacción de Windows proporciona varios niveles de soporte técnico. Hay varios escenarios que puede mejorar aplicaciones mediante las características de plataforma con Windows. Antes de adoptar un enfoque determinado, se recomienda lo exactamente que desea hacer con la aplicación.

compatibilidad heredada Let’s supone que ya tiene una aplicación existente con una gran instalación base. ¿Que podría plantearse, cuál será mi experiencia multitouch de los usuarios cuando se ejecuta la aplicación en un equipo de Windows 7 multitouch habilitado? La buena noticia es que la plataforma de Windows 7 Multitouch proporciona una experiencia de fábrica libre para las aplicaciones que reconocen táctil y no se diseñaron para admitir multitouch. Específicamente, proporciona compatibilidad con gratuito, fuera de la caja para unos gestos básicos. En otras palabras, puede esperar unos movimientos básicos para trabajar y tiene el efecto deseado en la aplicación. Movimientos básicos incluyen único dedo o dos dedos panorámica zoom de dos dedos y gestos que se introdujeron en el marco hora de Windows Vista.

Agregar compatibilidad con Multitouch básica Aquí nos centramos en Agregar admiten gestos directos, así como otros comportamientos y cambia interfaz de usuario para crear aplicaciones más táctil descriptivas más allá de soporte técnico de gesto simple.

Un ejemplo que ya hayamos revisado cerca del principio de este artículo es que el toque optimizado salto muestra la barra de tareas. Mediante el método getMessageExtraInfo, la barra de tareas puede rastrear el origen del mensaje de entrada y determinar si es un mensaje de contacto y, a continuación, responder en consecuencia.

Además, puede utilizar gestos para mejorar la aplicación y proporcionar una mejor compatibilidad multitouch. Las aplicaciones que responden directamente a gestos tienen control total sobre cómo se comportan cuando un usuario esté tocando el dispositivo habilitado para táctil. Por ejemplo, Windows 7 se distribuye con el Visor de fotos de Windows. En la aplicación Visor de fotos, el Visor recibe información específica sobre la ubicación que procede el movimiento de zoom. Es decir, el gesto de zoom contiene información sobre el punto central--específico X y Y coordenadas--el gesto de zoom y, a continuación, el Visor de fotos pueden centran alrededor del centro del gesto. La aplicación del Visor de fotos de Windows también utiliza los movimientos de panorámica y de giro para proporcionar una imagen muy buena experiencia con relativamente poco esfuerzo de visualización.

Con gestos, también puede reemplazar el valor predeterminado panorámica comportamiento. Por ejemplo, el desplazamiento de contacto predeterminado está diseñado para trabajar en ventanas centradas en el texto que se desplazan principalmente verticalmente, como páginas Web o documentos; horizontalmente arrastrando realiza la selección de texto en lugar de desplazamiento. En la mayoría de las aplicaciones, esto funciona bien. Pero ¿qué ocurre si la aplicación realmente necesita admitir el desplazamiento horizontal? También, para algunas aplicaciones de la predeterminada de desplazamiento puede aparecer chunky, ir demasiado rápido o demasiado lento. Con compatibilidad de movimientos, puede ignorar el predeterminado panorámica comportamiento y optimícelo para necesidades de su aplicación ’s.

experiencia optimizadas para Multitouch El mejor escenario es cuando aplicaciones están diseñadas desde el principio hasta multitouch de soporte técnico. Estas aplicaciones de generación en la parte superior del mensaje con mensajes de Windows, WM_TOUCH. Este mensaje proporciona datos de contacto sin procesar a la aplicación y puede consumir estos mensajes y controlar varios puntos de contacto. La mayoría de los movimientos que mencionamos anteriormente son movimientos de dos finger, donde con mensajes WM_TOUCH puede recibir como muchos puntos de contacto simultáneas como su subyacente táctil admite hardware confidenciales.

La plataforma de Windows 7 Multitouch también proporciona manipulación y procesadores de inercia para ayudarle a interpretar los mensajes de contacto. Piense en manipulación como un cuadro negro que recibe como entrada el objeto que se se toca y todos los mensajes relacionados táctil. El resultado es una matriz de transformación afín 2D que representa la transformación que ha ocurrido como consecuencia del movimiento del dedo. Por ejemplo, si estuviera escribiendo una aplicación de edición fotográfica, puede tomar dos fotografías en la misma hora utilizando sin embargo, muchos de los dedos desea girar, cambiar el tamaño y traducir las fotos, y el proceso de manipulación ofrece los cambios que necesarios para reflejar en el objeto.

Inercia proporciona un modelo física muy básica para las aplicaciones y le proporciona una manera fácil de continuar la transición suave de un objeto incluso después de recoger los dedos del dispositivo táctiles, para crear un efecto de transición simple en lugar de detener el objeto en la zona.

Trabajar con movimientos

Siempre que el usuario toca un dispositivo de Windows 7 habilitado táctiles, la plataforma de Windows 7 Multitouch envía mensajes de movimiento, WM_GESTURE, a la aplicación de forma predeterminada. Este es el comportamiento de fábrica libre y deberá voluntaria si desea dejar de recibir estos mensajes.

Gestos se consideran como uno o dos de los dedos táctil entradas que se traducen en algún tipo de acción predefinido (movimiento) que realiza el usuario. Una vez detectado (el sistema operativo realiza todo el trabajo por usted), el sistema operativo enviará un mensaje de movimiento a la aplicación. Este mensaje contiene toda la información necesaria para descodificar y facilitando el trabajo. Los siguientes gestos de soporte de Windows 7:

  • Zoom
  • Pan único dedo y dos de los dedos
  • Girar
  • Puntee en dos de los dedos
  • Presione y puntee en

controlar los mensajes de WM_Gesture Para que funcione con gestos, deberá controlar los mensajes WM_GESTURE enviados a la aplicación. Si un programador de Win32, puede comprobar los mensajes WM_GESTURE en función de la aplicación ’s WndProc.

El WM_GESTURE es el mensaje genérico utilizado para todos los movimientos. Por lo tanto, para determinar qué gesto necesita controlar, primero deberá descodificar el mensaje de movimiento. La información sobre gestos se encuentra en el parámetro lParam y necesita utilizar una función especial, GetGestureInfo, para descodificar el mensaje de movimiento, como se muestra en el siguiente fragmento de código.

    GESTUREINFO gi;
    ZeroMemory(&gi, sizeof(GESTUREINFO));
    gi.cbSize = sizeof(gi);
    BOOL bResult = GetGestureInfo((HGESTUREINFO)lParam, &gi);

Después de obtener una estructura GESTUREINFO, puede comprobar el dwID para identificar qué movimiento se ha realizado. La estructura GESTUREINFO contiene a varios otros miembros importantes:

  • cbSize -el tamaño de la estructura, en bytes
  • ptsLocation - puntos de una estructura que contiene las coordenadas asociadas con el gesto. Estas coordenadas son siempre relativas al origen de la pantalla
  • dwFlags -el estado del movimiento como empezar, inercia y final
  • ullArguments - un entero de 64 bits sin signo que contiene los argumentos de gestos que caben en ocho bytes. Esta es la información adicional que es única para cada tipo de movimiento

Con este conocimiento, ahora se pueden avanzar y escribir el método switch-case completo que controla todos los movimientos, como se muestra en Figura 3 .

Método switch-case de la figura 3

    void CMTTestDlg::DecodeGesture(WPARAM wParam, LPARAM lParam) 
    { 
        GESTUREINFO gi;  
        ZeroMemory(&gi, sizeof(GESTUREINFO)); 
        GetGestureInfo((HGESTUREINFO)lParam, &gi); 
        switch (gi.dwID){ 
            case GID_ZOOM: 
                // Code for zooming goes here 
                break; 
            case GID_PAN: 
                break; 
            case GID_ROTATE: 
                break; 
            case GID_TWOFINGERTAP: 
                break; 
            case GID_PRESSANDTAP: 
                break; 
            default: 
                // You have encountered an unknown gesture 
                break; 
        CloseGestureInfoHandle((HGESTUREINFO)lParam); 
    }

Observe que al final de la función que utilizamos la función CloseGestureInfoHandle que cierra los recursos asociados con el controlador de movimiento de información. Si controla el mensaje WM_GESTURE, es su responsabilidad para cerrar el identificador utilizando esta función. Para ello puede provocar pérdidas de memoria.

Controlar mensajes de movimiento tiene un flujo fijo que incluye la configuración, descodificar el mensaje de movimiento y controlar los gestos conforme a sus necesidades de aplicación específicos. Como puede ver en el código anterior, no es difícil para ello.

Ahora revise let’s en detalle los gestos de zoom, que proporcionan una idea del aspecto que podría tener todos los otros movimientos.

Utilice el movimiento de detalle para escalar un objeto

Gesto de zoom se reconoce normalmente por usuarios como un movimiento “ pinch ” entre dos puntos de contacto, donde que mover hacia los dedos entre sí para alejar y mover los dedos alejar para acercar y ampliar el contenido. El gesto de zoom permite escalar el tamaño de los objetos. figura 4 ilustra cómo funciona el gesto de zoom.

fig01.gif

Figura 4 consulta gestos

Ahora, vea let’s qué código necesita implementar en el modificador GID_ZOOM para conseguir el efecto de zoom deseado.

El gesto de-estructura de información incluye al miembro dwFlags que se utiliza para determinar el estado del movimiento y puede incluir cualquiera de los siguientes valores:

  • GF_BEGIN : indica que se está iniciando el gesto de, recibido en el primer mensaje WM_Gesture
  • GF_INERTIA : indica que el movimiento ha desencadenado la inercia
  • GF_END : indica que el movimiento se ha terminado
  • El predeterminada del modificador – indica el resto del mensaje gesto y se suele hacer referencia como el delta

Utilizaremos el indicador GF_BEGIN para guardar las coordenadas de inicio inicial de la punto táctil en variables como una referencia para los siguientes pasos. Guardamos el ptsLocation en la variable _ptFirst. Gesto de zoom, la ptsLocation indica el centro del zoom.

El siguiente mensaje de zoom que llega está controlado por el caso predeterminado. Se guarda las coordenadas en la variable _ptSecond. A continuación, calculamos el punto central de zoom, el zoom y la última actualización rectangular (nuestro objeto gráfico) para reflejar el punto central de zoom y la proporción de zoom. figura 5 se muestran estos argumentos.

Figura 5 GID_ZOOM cambiar

    case GID_ZOOM: 
    switch(gi.dwFlags) 
    { 
    case GF_BEGIN: 
        _dwArguments = LODWORD(gi.ullArguments); 
        _ptFirst.x = gi.ptsLocation.x; 
        _ptFirst.y = gi.ptsLocation.y; 
        ScreenToClient(hWnd,&_ptFirst); 
        break; 
    default: 
        // We read here the second point of the gesture. This is middle point between fingers.  
        _ptSecond.x = gi.ptsLocation.x; 
        _ptSecond.y = gi.ptsLocation.y; 
        ScreenToClient(hWnd,&_ptSecond); 
        // We have to calculate zoom center point  
        ptZoomCenter.x = (_ptFirst.x + _ptSecond.x)/2; 
        ptZoomCenter.y = (_ptFirst.y + _ptSecond.y)/2;            
         
        // The zoom factor is the ratio between the new and the old distance.  
        k = (double)(LODWORD(gi.ullArguments))/(double)(_dwArguments); 
        // Now we process zooming in/out of the object 
        ProcessZoom(k,ptZoomCenter.x,ptZoomCenter.y); 
        InvalidateRect(hWnd,NULL,TRUE); 
     
        // Now we have to store new information as a starting information for the next step 
        _ptFirst = _ptSecond; 
        _dwArguments = LODWORD(gi.ullArguments); 
        break; 
    } 
    break;

En el controlador caso predeterminado, se guarda la ubicación del gesto de y de los dos conjuntos de puntos (que representa el punto de contacto actual y anterior) se calcular la ubicación del Centro de zoom y almacenarlo en ptZoomCenter. También podemos calcular el factor de zoom calculando la relación entre los dos puntos. Una llamada a la función auxiliar de ProcessZoom actualiza las nuevas coordenadas para reflejar el punto de factor y el Centro de zoom.

Controlar el resto de los gestos de predeterminada de Windows 7 es muy similar a lo específico acerca gesto control descrito anteriormente. Todos los movimientos siga el mismo flujo y sólo la implementación lógica interna difiere por movimiento, por el escenario de casos de uso. A continuación, revisaremos el modelo óptimo y toque de profundizar en la API que permite recibir y controlar sin procesar eventos.

Trabajar con mensajes Touch RAW de Windows

Para poder empezar a recibir mensajes sin formato táctil, WM_TOUCH, primero tiene que pida el sistema operativo para iniciar enviar mensajes de contacto a la aplicación y dejar de enviar los mensajes de movimiento predeterminado. Para ello, necesitará llamar a la función RegisterTouchWindow(HWND hWnd, ULONG uFlags). Llamar a esta función registra una sola hWnd elemento (normalmente una ventana) como se táctil habilitado.

Como con gestos, controlar mensajes WM_TOUCH en su aplicación ’s WndProc de función. Un único mensaje WM_TOUCH puede contener varias diferentes estructuras de entrada “ puntos de contacto mensajes ” que necesitan ser desempaquetar en una matriz de contacto. Como práctica estándar, desee desempaquetar el mensaje WM_TOUCH en matriz de estructuras TOUCHINPUT, donde cada estructura de la matriz representa datos desde un punto solo toque. Para desempaquetar, es necesario llamar a la función GetTouchInputInfo(HTOUCHINPUT hTouchInput, UINT cInputs, PTOUCHINPUT pInputs, int cbSize) y pasarla lParam del mensaje WM_TOUCH y un toque recién creado señala matriz, como se muestra en la figura 6 .

Figura 6 WM_TOUCH descompresión

    case WM_TOUCH: 
    { 
        unsigned int numInputs = (unsigned int) wParam;  
        TOUCHINPUT* ti = new TOUCHINPUT[numInputs];  
        if(GetTouchInputInfo((HTOUCHINPUT)lParam, numInputs, ti, sizeof(TOUCHINPUT))) 
        { 
            // Handle each contact point 
            for(unsigned int i=0; i< numInputs; ++i) 
            { 
               /* handle ti[i]  */ 
            } 
        } 
        CloseTouchInputHandle((HTOUCHINPUT)lParam); 
        delete [] ti; 
    } 
    break; 
    default: 
        return DefWindowProc(hWnd, message, wParam, lParam);

Aquí puede ver cómo podemos rellenar el TOUCHPOINT ti matriz con los datos de cada punto de contacto. A continuación, nos recorrer la táctil puntos matriz, aplicar la lógica a cada punto táctil, el comentario de ti [i] de identificador. Por último, es necesario limpiar el identificador de táctil llamando CloseTouchInputHandle(HTOUCHINPUT hTouchInput) pasando lParam ’s WinProc original. Error al hacerlo, se producirá pérdidas de memoria.

El código anterior representa el primer paso en el tratamiento de mensajes WM_TOUCH. Estructura, de entrada de un solo toque TOUCHINPUT, contiene toda la información necesaria sobre un punto de solo toque que necesitará trabajar con:

  • dwID – es el identificador de punto táctil que distingue una entrada táctil determinado de la otra
  • dwFlags – es un conjunto de indicadores de bit que especifican el estado del punto de contacto
  • X y Y Coordenada del punto táctil (básicamente la ubicación de cada punto de contacto)
  • dwTime – es el paso del tiempo para el evento, en milisegundos
  • dwMask : un conjunto de indicadores de bits que especifica cuál de los campos opcionales en la estructura contiene los valores válidos

Es importante tener en cuenta que las coordenadas X e Y son en centésimas de un píxel de coordenadas de pantalla físico (es decir, centa-píxel). Esta resolución extra-fine promueve alta precisión y precisa escribir a mano reconocimiento para otras aplicaciones que requieran dicha resolución correctamente. Pero la mayoría de las situaciones, necesitará recordar dividir las coordenadas de X e Y de punto de contacto por cien para traducir las coordenadas de punto de toque a coordenadas de pantalla utilizable antes de empezar con estas coordenadas.

Por ahora sabe cómo controlar los mensajes táctil y tiene toda la información para ir y agregar lógica real a nuestro controlador WM_TOUCH descrito anteriormente. Let’s use este conocimiento y genere una aplicación de pintura multitouch, también conocido como el Bloc de borrador.

identificadores de punto de contacto de seguimiento Para crear la aplicación Bloc de borrador, deberá realizar un seguimiento cada movimiento del punto de contacto y la ruta de acceso que formularios y, a continuación, dibujar una línea de ruta de acceso. Para distinguir entre los puntos de contacto diferente y asegúrese de que realmente que controla cada punto de contacto correctamente, asignamos color diferente a cada punto de contacto.

Tras desempaquetar el mensaje de contacto en una matriz de estructuras de entrada táctil, ti, deberá comprobar cada estado de punto de contacto y aplicar una lógica distinta por estado de contacto. En el ejemplo de relleno de cero, se identificó nuevos puntos de contacto por el estado inactivo, TOUCHEVENTF_DOWN. Registrar el nuevo identificador punto de contacto y asigne un color. Cuando se quita un punto de contacto, TOUCHEVENTF_UP, completar la última pintura y anular el registro el identificador de punto de contacto. Entre hacia abajo y los eventos, probablemente obtendrá mucha mover mensajes, TOUCHEVENTF_MOVE. Para cada mensaje de movimiento, puede agregar un nuevo punto a la línea existente y pintar el segmento de la línea de nuevo. figura 7 muestra toda la WM_TOUCH controlador que es necesario para la aplicación Pad de borrador admitir multitouch.

Figura 7 WM_TOUCH controlador

text for checking

    case WM_TOUCH: 
    { 
        unsigned int numInputs = (unsigned int) wParam;  
        TOUCHINPUT* ti = new TOUCHINPUT[numInputs];  
        if(GetTouchInputInfo((HTOUCHINPUT)lParam, numInputs, ti, sizeof(TOUCHINPUT))) 
        { 
            // For each contact, dispatch the message to the appropriate message handler. 
            for(unsigned int i=0; i< numInputs; ++i) 
            { 
                if(ti[i].dwFlags & TOUCHEVENTF_DOWN) 
                { 
                   OnTouchDownHandler(hWnd, ti[i]); 
                } 
                else if(ti[i].dwFlags & TOUCHEVENTF_MOVE) 
                { 
                   OnTouchMoveHandler(hWnd, ti[i]); 
                } 
                else if(ti[i].dwFlags & TOUCHEVENTF_UP) 
                { 
                   OnTouchUpHandler(hWnd, ti[i]); 
                } 
            } 
        } 
        CloseTouchInputHandle((HTOUCHINPUT)lParam); 
        delete [] ti; 
    } 
    break;

La clave para puntos de contacto individuales de seguimiento está utilizando el dwID que permanece igual a través de la duración de trazo específico táctil.  En la función auxiliar OnTouchDownHandler, se asigna a este identificador a un objeto CStroke que básicamente es una matriz de puntos que representa una línea.  Esta línea es el formulario de ruta de acceso cuando se arrastra el dedo en el dispositivo táctiles.  No vamos a tratar el ejemplo de código completo que admite la aplicación y que realmente dibuja las líneas de la pantalla.  Básicamente, todo lo que necesita hacer para admitir multitouch puede encontrarse en el ejemplo de código anterior.

Puede ver el resultado de la aplicación Bloc de borrador  Figura 8 .

fig01.gif

Figura 8 resultados de la aplicación de borrador

En el controlador caso predeterminado, se guarda la ubicación del gesto de y de los dos conjuntos de puntos (que representa el punto de contacto actual y anterior) se calcular la ubicación del Centro de zoom y almacenarlo en ptZoomCenter.  También podemos calcular el factor de zoom calculando la relación entre los dos puntos.  Una llamada a la función auxiliar de ProcessZoom actualiza las nuevas coordenadas para reflejar el punto de factor y el Centro de zoom.

Controlar el resto de los gestos de predeterminada de Windows 7 es muy similar a lo específico acerca gesto control descrito anteriormente.  Todos los movimientos siga el mismo flujo y sólo la implementación lógica interna difiere por movimiento, por el escenario de casos de uso.  A continuación, revisaremos el modelo óptimo y toque de profundizar en la API que permite recibir y controlar sin procesar eventos.

Trabajar con mensajes Touch RAW de Windows

Para poder empezar a recibir mensajes sin formato táctil, WM_TOUCH, primero tiene que pida el sistema operativo para iniciar enviar mensajes de contacto a la aplicación y dejar de enviar los mensajes de movimiento predeterminado.  Para ello, necesitará llamar a la función RegisterTouchWindow(HWND hWnd, ULONG uFlags).  Llamar a esta función registra una sola hWnd elemento (normalmente una ventana) como se táctil habilitado.

Como con gestos, controlar mensajes WM_TOUCH en su aplicación ’s WndProc de función.  Un único mensaje WM_TOUCH puede contener varias diferentes estructuras de entrada “ puntos de contacto mensajes ” que necesitan ser desempaquetar en una matriz de contacto.  Como práctica estándar, desee desempaquetar el mensaje WM_TOUCH en matriz de estructuras TOUCHINPUT, donde cada estructura de la matriz representa datos desde un punto solo toque.  Para desempaquetar, es necesario llamar a la función GetTouchInputInfo(HTOUCHINPUT hTouchInput, UINT cInputs, PTOUCHINPUT pInputs, int cbSize) y pasarla lParam del mensaje WM_TOUCH y un toque recién creado señala matriz, como se muestra en la figura 6.

Resumen

La plataforma de Windows 7 Multitouch es una plataforma de desarrollo muy eficaces. De implementar la compatibilidad de gesto predeterminada a los mensajes sin formato táctil más avanzadas, le da mucha energía con implementación relativamente sencilla.

La plataforma también incluye los procesadores de manipulación y la inercia. Manipulaciones son similares a los gestos de un lote de formas, pero son mucho más eficaces. Manipulaciones de se utilizan para simplificar las operaciones de transformación en cualquier número dado de objetos. Puede realizar una combinación de gestos de componente específico, como girar, zoom y escala en un objeto específico al mismo tiempo. El procesador de manipulación produce un dos dimensiones “ matriz de transformación ” que representa las transformaciones en X y Y coordenadas, el cambio de escala y el giro que se produjo al objeto con el tiempo como resultado del movimiento realizado de los puntos de contacto. Se extrae el último punto de contacto, puede que desee aplicar física sencilla al objeto por lo que se trata correctamente una detención, en lugar que detener repentinamente en la zona. Para admitir ese movimiento suave, la plataforma de Windows 7 multitouch proporciona la API de inercia.

Estas API será el tema de nuestro siguiente artículo MSDN.

Yochay Kiriaty es un evangelista técnico de Microsoft, centrándose en Windows 7.  Tiene más de una década de experiencia en desarrollo de software.  Ha escrito y informática académica taught cursos y es un colaborador de activo El Blog de Windows.