Download presentation
Presentation is loading. Please wait.
Published byAllie Dunkerson Modified over 10 years ago
1
Reed Townsend Program Manager Microsoft Corporation Anson Tsao Program Manager Microsoft Corporation PC03
3
Reed Townsend Program Manager Windows
7
Windows 7 ReleaseNET 4.0 / Surface 2.0 Release Multi-Touch Controls Multi-Touch API Surface Multi-Touch Controls & API Surface Multi-Touch Controls & API Multi-Touch API Multi-Touch API and Controls
8
GoodBetterBest APIs For Free! Panning/zoom gestures Right click gesture Gesture notifications Pan/zoom/rotate/etc Raw touch data Manipulation and Inertia processors Native Win32 Controls with standard scrollbars WM_GESTURE message WM_TOUCH COM based Manipulation and Inertia Processors WPF WPF 4.0 pan support in ScrollViewer Gesture events Inertia configuration Touch events Manipulation and Inertia Processors WinForms Controls with standard scrollbars WM_GESTURE message P/Invoke Manipulation and Inertia Processors in Microsoft.Ink.DLL Real-time Stylus or Ink Collector
9
Reed Townsend Program Manager Windows
11
BOOL WINAPI GetGestureCommandInfo( __in UINT uMsg, __in WPARAM wParam, __in LPARAM lParam, __in LPARAM lExtraInfo, __inout PGESTUREINFO pGestureInfo ); typedef struct _GESTURECOMMANDINFO { UINT cbSize; DWORD dwFlags; DWORD dwCommand; DWORD dwArguments; POINTS ptsLocation; } GESTURECOMMANDINFO, *PGESTURECOMMANDINFO;
12
dwCommanddwArgumentsptsLocation PanDistance between contacts Current center of gesture ZoomDistance between contacts Current center of gesture RotateAbsolute angle on rotate start, delta on updates Current center of gesture Two-finger tapNACurrent center of gesture Right click gestureNAFirst finger down
15
Reed Townsend Program Manager Windows
17
BOOL WINAPI RegisterTouchWindow( __in HWND hwnd, __in ULONG ulFlags); BOOL WINAPI GetTouchInputInfo( __in HANDLE hTouchInput, // input event handle __in UINT cInputs, // number of elts in the array __out_ecount(cInputs) PTOUCHINPUT pInputs, // array of touch inputs __in int cbSize); // sizeof(TOUCHINPUT) typedef struct tagTOUCHINPUT { LONG x; LONG y; HANDLE hSource; DWORD dwID; DWORD dwFlags; DWORD dwMask; DWORD dwTime; ULONG_PTR dwExtraInfo; DWORD cxContact; DWORD cyContact; } TOUCHINPUT, *PTOUCHINPUT; typedef TOUCHINPUT const * PCTOUCHINPUT; BOOL WINAPI CloseTouchInputHandle( __in HANDLE hTouchInput); // input event handle
19
Reed Townsend Program Manager Windows
24
Anson Tsao Senior Program Manager WPF
26
Anson Tsao Senior Program Manager WPF
28
Anson Tsao Senior Program Manager WPF
29
ATOM m_atom = ::GlobalAddAtom(MICROSOFT_TABLETPENSERVICE_PROPERTY); m_dwProperty = TABLET_ENABLE_MULTITOUCHDATA ; ::SetProp(m_hwnd, (LPTSTR)m_atomPenService, (HANDLE)m_dwProperty);
34
wintouch@microsoft.com
35
Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com
37
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
41
HP TouchSmart All-in-one PC with 2-touch digitizer from NextWindow Dell Latitude XT Laptop with multi-touch and pen digitizer from N-Trig
43
typedef struct tagGESTUREINFO { UINT cbSize; // size, in bytes, of this structure // (including variable length Args field) DWORD dwFlags; // see GF_* flags DWORD dwID; // gesture ID, see GID_* defines HWND hwndTarget; // handle to window targeted by this gesture POINTS ptsLocation; // current location of this gesture DWORD dwInstanceID; // internally used DWORD dwSequenceID; // internally used ULONGLONG ullArguments; // arguments for gestures whose arguments fit // in 8 BYTES UINT cbExtraArgs; // size, in bytes, of extra arguments, if // any, that accompany this gesture } GESTUREINFO, *PGESTUREINFO; BOOL WINAPI GetGestureInfo( __in HGESTUREINFO hGestureInfo, __out PGESTUREINFO pGestureInfo);
44
typedef struct tagGESTURECONFIG { DWORD dwID; DWORD dwWant; DWORD dwBlock; } GESTURECONFIG, *PGESTURECONFIG; BOOL WINAPI SetGestureConfig( __in HWND hwnd, __in DWORD dwReserved, __in UINT cIDs, __in_ecount(cIDs) PGESTURECONFIG pGestureConfig, __in UINT cbSize); BOOL WINAPI GetGestureConfig( __in HWND hwnd, __in DWORD dwReserved, __in DWORD dwFlags, __in PUINT pcIDs, __inout_ecount(*pcIDs) PGESTURECONFIG pGestureConfig, __in UINT cbSize);
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.