Tablets MultiTouch con MS Windows 7: Inertia (IV)

Windows Técnico

Sindicación

Proximos HOLs

Loading...

En la categoría de posts dedicados a la programación para dispositivos tablet multitouch con Windows 7, se han presentado toda una serie de entradas relacionadas con la propiedad Inertia. En ellas se han analizado varios componentes que permiten dotar a las aplicaciones de funcionalidades asociadas con este movimiento propio de objetos característicos en las aplicaciones para dispositivos multitouch.

En la entrada de hoy se continuará valorando apartados relacionados con esta funcionalidad. Se trata de un aspecto importante, la comunicación de los eventos de inercia detectados por el sistema operativo MS Windows 7.y capturados por las aplicaciones.

Los mensajes, procedentes del sistema operativo al activarse algún elemento touch, guardan información necesaria para poder interactuar con el Tablet. La información que aportan estos mensajes es la siguiente: posición de pantalla donde se produce el evento, el identificador del mismo, el momento en el que se produce, la posibilidad de activación de algunos bits en forma de “flag” y la máscara asociada a ésta.

En las siguientes líneas de código se muestra un ejemplo de cómo extraer esta información:

 

private void DecodeTouch(ref TOUCHINPUT touchInput)

        {

            // TOUCHINFO point coordinates and contact size is in 1/100 of a pixel; convert it to pixels.

            // Also convert screen to client coordinates.

            if ( (touchInput.dwMask & User32.TOUCHINPUTMASKF_CONTACTAREA) != 0)

                ContactSize = new Size(AdjustDpiX(touchInput.cyContact / 100), AdjustDpiY(touchInput.cyContact / 100));

                         

            Id = touchInput.dwID;

 

            Point p = _hWndWrapper.PointToClient(new Point(touchInput.x / 100, touchInput.y / 100));

            Location = new Point(AdjustDpiX(p.X), AdjustDpiY(p.Y));

 

            Time = touchInput.dwTime;

            TimeSpan ellapse = TimeSpan.FromMilliseconds(Environment.TickCount - touchInput.dwTime);

            AbsoluteTime = DateTime.Now - ellapse;

          

            Mask = touchInput.dwMask;

            Flags = touchInput.dwFlags;

        }

 

La utilidad de este código es asociarlo a un evento para ser manejado por la aplicación en función de las necesidades en cada caso. Junto a lo anterior permite monitorizar de forma instantáneas los parámetros asociados al dispositivo tablet.

De nuevo se presenta un ejemplo que ilustre cómo crear un evento de estas características:

  internal TouchEventArgs(IHwndWrapper hWndWrapper, float dpiX, float dpiY, ref TOUCHINPUT touchInput)

        {

            _hWndWrapper = hWndWrapper;

            _dpiXFactor = 96F / dpiX;

            _dpiYFactor = 96F / dpiY;

            DecodeTouch(ref touchInput);

        }

 

Con esta información es posible monitorizar toda la operativa que se lleva a efecto sobre el dispositivo tablet con Ms Windows 7, haciendo uso de eventos que comunican el dispositivo a través del sistema operativo con las aplicaciones. 

Finalizamos aquí esta breve entrada, pero seguiremos aportándoos más información sobre el desarrollo de aplicaciones enfocadas a dispositivos tablet multitouch con Ms Windows 7. Para acabar, recuerda que si quieres aprender mucho más sobre los secretos de los sistemas Microsoft Windows, te recomendamos leer el libro de Sergio de los Santos "Máxima Seguridad en Windows: Secretos Técnicos" , o siempre puedes suscribirte al Canal RSS de Windows Técnico para estar al día de las novedades e información técnica de interés.

image


Enviado may 13 2011, 04:51 por Ignacio Briones

Comentarios

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (V)
en 05-20-2011 17:49

En este artículo, y tras la publicación de las entradas anteriores de la serie “Inertia”, se iniciará

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (VI)
en 06-04-2011 13:13

Tras haber presentado   una serie de entradas dedicadas a valorar las aplicaciones ejemplo disponibles

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (VII)
en 06-10-2011 18:13

Con esta nueva entrada se da continuidad a la ya dilatada serie de artículos dedicados al desarrollo

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (VII)
en 06-10-2011 18:17

Con esta nueva entrada se da continuidad a la ya dilatada serie de artículos dedicados al desarrollo

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (V)
en 04-13-2012 13:38

En este artículo, y tras la publicación de las entradas anteriores de la serie “Inertia”

Añadir un comentario

(requerido)  
(opcional)
(requerido)  
Recordarme
If you can't read this number refresh your screen
Enter the numbers above: