I'm a geekette who enjoys playing with new technology for software developers. I work as a Developer Evangelist for Microsoft. My current focus is on Windows Store development for Windows 8.
This is the first post in a week-long series on multitouch in Windows 7.
Most everyone is comfortable with using a mouse to navigate on a computer. An alternate form of user input is touch. For some time, we have had touch machines (such as tablets) that allow us to substitute one finger on the screen for the mouse. Multitouch takes this paradigm one step further: the computer can recognize and respond to multiple touch points at the same time (for instance, multiple fingers on the screen). Multitouch is a huge part of the NUI (Natural User Interface) movement.
I own the HP TouchSmart tx2 and the Acer machine that was given away at the Microsoft PDC in 2009. There are also multitouch machines made by Dell, Toshiba, and Lenovo.
The number of touch points is dependent on the hardware and drivers that you are using. With the drivers I’m using, I get 4 touch points on the HP TouchSmart and 2 touch points on the Acer machine.
In the consumer space, multitouch rocks for navigating the web, viewing photos, playing casual games, consuming music and video, and navigating files/arranging windows. Also, my personal favorite use for multitouch is in navigating maps. I travel a lot for my job and check maps for driving directions frequently. Panning around on a map using my fingers makes the map easier to explore, and using the “pinch” gesture to zoom out is so much more intuitive than Shift+Click or searching for a “Zoom Out” button.
In the enterprise space, multitouch is compelling in kiosk scenarios, manufacturing plants (where using keyboards is difficult due to wearing heavy gloves), retail displays, and hotel and airport checkins.
Your experience will vary based on your machine’s manufacturer, but they should always include the multitouch drivers. (If, for some crazy reason, you have a multitouch machine without the multitouch drivers, contact the manufacturer. You can also try downloading them from here, but I am not responsible if you hose your machine.)
Now, open up the Pen and Touch settings in the Control Panel. (Click the Start button, Control Panel, “Hardware and Sound”, and then “Pen and Touch”. Alternatively, you can type “Pen and Touch” in the search box.)
Click on the “Touch” tab. Ensure that “Enable multi-touch gestures and inking” is checked.
The official way: in the Start Menu, right-click on Computer and select “Properties”. Near the bottom of the “System” section, you should see a “Pen and Touch” field which will tell you that it’s available and the number of touch points that you have.
The fun way: open up Paint and swipe your hand across the screen with all 5 fingers spread out, so that each of your five fingers drags across the screen at the same time. The number of lines that are drawn is the number of touch points supported.
Gestures are known motions with a single or multiple fingers. Out of the box, Windows 7 recognizes many pre-defined gestures:
You can also create your own custom gestures.
Yes, my friends, there are. In all of the documentation on multitouch development in Windows 7, you will see information on the three “levels” of multitouch development (which are called Good, Better, and Best).
The “Good” level is the support for multitouch that Windows 7 provides out of the box, with no extra coding required. For example, you can use the “flick” gesture to scroll wherever there is a scroll bar. You can use the press and tap gesture (described above) to right-click in any application.
The “Better” level is the support for coding with gestures. At this level, you can code your application to respond to gestures like Rotate and Zoom using the Touch APIs.
The “Best” level is the support for coding at the raw touch input level. For example, you can create a finger-painting application where each touch leaves a mark on the screen, or you can create custom gestures. At this level, you can code your application to respond to each finger placed on it and/or finger lifted using the Touch APIs (similar to MouseDown etc.).
Stay tuned for tomorrow’s post, when we will look at gesture support in more depth and write some code.
Other blog posts in this series:
Multitouch Part 1: Getting Started with Multitouch in Windows 7
Multitouch Part 2: Support for Gestures in Windows 7
Multitouch Part 3: Multitouch in managed code and WPF
Multitouch Part 4: Multitouch in Silverlight
Multitouch Part 5: User Experience with Multitouch