Touch UX with win32 API<br />win32 API를 이용해 윈도우 7의 멀티 터치 구현하기<br />2010. 3. 8. Windows 7 Technical Briefing<br />최 성 기<br ...
Agenda<br />Intro : 멀티 터치<br />터치 프로그래밍 준비사항<br />win32 API로 터치 인식하기<br />Reference<br />
Touch Interface<br />UX(사용자 경험)분야의 가장 뜨거운 이슈<br />터치형 인터페이스는 계속 성장할 전망<br />
Multi-Touch is Here<br /><ul><li>싱글터치는기존 마우스 인식과 유사.
싱글 터치를 넘어 멀티 터치의 시대로.
멀티터치의 지원으로 표현력은 크게 증폭</li></ul>http://cyberimpacts.com/,<br />http://www.intomobile.com/2007/03/11/apple-iphone-disappoint...
터치 프로그래밍 준비사항<br />
Visual Studio 2010<br />2010. 2. 9. RC 버전 공개.<br />2010. 4월 정식 버전 출시.<br />2010. 6월 한글판 출시.<br />이전 컴파일러 + Windows 7 SDK -...
하드웨어 에뮬레이터<br />http://multitouchvista.codeplex.com/ <br />멀티터치 인식 드라이버 (오픈소스)<br />
터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />
터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />Doing nothing!<br />Windows 7 에서실행하기만 하면 얻는 기능...
터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />WM_GESTURE<br />적은 수정비용으로 기본적인 동작 구현<br />
터치 프로그래밍 : 단계별 적용<br />3<br />Best<br />2<br />Better<br />1<br />Good<br />WM_TOUCH<br />가장 강력하고 유연한 기능 구현 가능<br />
Step 1. Good<br />Window 7 의기본 제공 터치 UX<br />Demo<br />
터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />WM_GESTURE<br />적은 수정비용으로 기본적인 동작 구현<br />
GetSystemMetrics()<br />GetSystemMetrics()<br />SM_DIGITIZER : 입력장치 상태 확인<br />SM_TABLETPC : 타블렛pc 여부 확인<br />SM_MAXIMUMTO...
WM_GESTURE의 9가지 제스처<br />http://msdn.microsoft.com/en-us/library/dd940543(VS.85).aspx<br />
WM_GESTURE의 9가지 제스처<br />Panning<br />Selection / Drag<br />Rotate<br />Zoom<br />
WM_GESTURE의 9가지 제스처<br />Press and Tap<br />Press and Hold<br />Flicks<br />Two-Finger Tap<br />
WM_GESTURENOTIFY<br />SetGestureConfig( … )<br />원하는 제스쳐만을 활성화 해준다.<br />GC_ALLGESTURE<br />GC_PAN<br />GC_PAN_WITH_SINGLE...
WM_GESTURE<br />사용자가 응용프로그램 윈도우에 제스처를 수행했음을 알려줌.<br />제스처의 중심좌표와, 각 제스처에 따른 추가 정보들을 포함<br />lParam으로 GESTUREINFO 구조체를 얻는다....
struct GESTUREINFO<br />
Panning 제스처의 메시지 예시<br />WM_GESTURENOTIFY<br />WM_GESTURE (GID_BEGIN)<br />WM_GESTURE (GID_PAN, GF_BEGIN)<br />WM_GESTURE ...
Step 2. Better<br />WM_GESTURE 를 통한 구현<br />Demo<br />
터치 프로그래밍 : 단계별 적용<br />3<br />Best<br />2<br />Better<br />1<br />Good<br />WM_TOUCH<br />가장 강력하고 유연한 기능 구현 가능<br />
Mouse Messages &GetMessageExtraInfo()<br />GetMessageExtraInfo() 함수를 이용해메시지의 추가정보를 얻을 수 있다.<br />Mouse up / down 메시지는 터치나 ...
WM_TOUCH<br />가장 직접적인 형태의 터치 데이터를 제공<br />마우스 메시지와 유사한 컨셉<br />이동, 회전, 줌 변환을 동시 적용 가능.<br />Finger painting<br />Custom Ge...
WM_TOUCH가 전달되도록 설정<br />BOOL RegisterTouchWindow( … )<br />WM_GESTURE 대신 WM_TOUCH를 받는다.<br />TWF_WANTPALM : 반응 속도 추가설정 가능<...
Step 3. Best<br />WM_TOUCH를 통한 구현<br />Demo<br />
터치 프로그래밍 : 단계별 적용<br />Doing nothing!<br />Windows 7 에서실행하기만 하면 얻는 기능<br /><ul><li>WM_GESTURE
적은 수정비용으로 기본적인 동작 구현
Upcoming SlideShare
Loading in …5
×

Touch Ux With Win32

4,422 views

Published on

1 Comment
2 Likes
Statistics
Notes
  • win32 API 를 이용한 Touch UX
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
4,422
On SlideShare
0
From Embeds
0
Number of Embeds
2,078
Actions
Shares
0
Downloads
22
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Touch Ux With Win32

  1. 1. Touch UX with win32 API<br />win32 API를 이용해 윈도우 7의 멀티 터치 구현하기<br />2010. 3. 8. Windows 7 Technical Briefing<br />최 성 기<br />http://vsts2010.net<br />florist.sk@gmail.com<br />NC Soft<br />
  2. 2. Agenda<br />Intro : 멀티 터치<br />터치 프로그래밍 준비사항<br />win32 API로 터치 인식하기<br />Reference<br />
  3. 3. Touch Interface<br />UX(사용자 경험)분야의 가장 뜨거운 이슈<br />터치형 인터페이스는 계속 성장할 전망<br />
  4. 4. Multi-Touch is Here<br /><ul><li>싱글터치는기존 마우스 인식과 유사.
  5. 5. 싱글 터치를 넘어 멀티 터치의 시대로.
  6. 6. 멀티터치의 지원으로 표현력은 크게 증폭</li></ul>http://cyberimpacts.com/,<br />http://www.intomobile.com/2007/03/11/apple-iphone-disappointing-lcd-screen.html<br />
  7. 7. 터치 프로그래밍 준비사항<br />
  8. 8. Visual Studio 2010<br />2010. 2. 9. RC 버전 공개.<br />2010. 4월 정식 버전 출시.<br />2010. 6월 한글판 출시.<br />이전 컴파일러 + Windows 7 SDK -> 개발가능<br />
  9. 9. 하드웨어 에뮬레이터<br />http://multitouchvista.codeplex.com/ <br />멀티터치 인식 드라이버 (오픈소스)<br />
  10. 10. 터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />
  11. 11. 터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />Doing nothing!<br />Windows 7 에서실행하기만 하면 얻는 기능<br />
  12. 12. 터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />WM_GESTURE<br />적은 수정비용으로 기본적인 동작 구현<br />
  13. 13. 터치 프로그래밍 : 단계별 적용<br />3<br />Best<br />2<br />Better<br />1<br />Good<br />WM_TOUCH<br />가장 강력하고 유연한 기능 구현 가능<br />
  14. 14. Step 1. Good<br />Window 7 의기본 제공 터치 UX<br />Demo<br />
  15. 15. 터치 프로그래밍 : 단계별 적용<br />1<br />Good<br />2<br />Better<br />3<br />Best<br />WM_GESTURE<br />적은 수정비용으로 기본적인 동작 구현<br />
  16. 16. GetSystemMetrics()<br />GetSystemMetrics()<br />SM_DIGITIZER : 입력장치 상태 확인<br />SM_TABLETPC : 타블렛pc 여부 확인<br />SM_MAXIMUMTOUCHES : 최대 동시입력 개수<br />
  17. 17. WM_GESTURE의 9가지 제스처<br />http://msdn.microsoft.com/en-us/library/dd940543(VS.85).aspx<br />
  18. 18. WM_GESTURE의 9가지 제스처<br />Panning<br />Selection / Drag<br />Rotate<br />Zoom<br />
  19. 19. WM_GESTURE의 9가지 제스처<br />Press and Tap<br />Press and Hold<br />Flicks<br />Two-Finger Tap<br />
  20. 20. WM_GESTURENOTIFY<br />SetGestureConfig( … )<br />원하는 제스쳐만을 활성화 해준다.<br />GC_ALLGESTURE<br />GC_PAN<br />GC_PAN_WITH_SINGLE_FINGURE_VERTICALLY<br />GC_PAN_WITH_SINGLE_FINGURE_HORIZONTALLY<br />GC_PAN_WITH_INERTIA<br />
  21. 21. WM_GESTURE<br />사용자가 응용프로그램 윈도우에 제스처를 수행했음을 알려줌.<br />제스처의 중심좌표와, 각 제스처에 따른 추가 정보들을 포함<br />lParam으로 GESTUREINFO 구조체를 얻는다.<br />
  22. 22. struct GESTUREINFO<br />
  23. 23. Panning 제스처의 메시지 예시<br />WM_GESTURENOTIFY<br />WM_GESTURE (GID_BEGIN)<br />WM_GESTURE (GID_PAN, GF_BEGIN)<br />WM_GESTURE (GID_PAN, no flags)<br />…<br />WM_GESTURE (GID_PAN, GF_INERTIA)<br />…<br />WM_GESTURE (GID_PAN, GF_END)<br />WM_GESTURE (GID_END)<br />
  24. 24. Step 2. Better<br />WM_GESTURE 를 통한 구현<br />Demo<br />
  25. 25. 터치 프로그래밍 : 단계별 적용<br />3<br />Best<br />2<br />Better<br />1<br />Good<br />WM_TOUCH<br />가장 강력하고 유연한 기능 구현 가능<br />
  26. 26. Mouse Messages &GetMessageExtraInfo()<br />GetMessageExtraInfo() 함수를 이용해메시지의 추가정보를 얻을 수 있다.<br />Mouse up / down 메시지는 터치나 펜으로 입력된 경우를 구분할 수 있다.<br />Ex) Window 7의 기본 Mouse 입력 처리<br />
  27. 27. WM_TOUCH<br />가장 직접적인 형태의 터치 데이터를 제공<br />마우스 메시지와 유사한 컨셉<br />이동, 회전, 줌 변환을 동시 적용 가능.<br />Finger painting<br />Custom Gestures<br />Feeding higher-level controls ( ex. Manipulation )<br />
  28. 28. WM_TOUCH가 전달되도록 설정<br />BOOL RegisterTouchWindow( … )<br />WM_GESTURE 대신 WM_TOUCH를 받는다.<br />TWF_WANTPALM : 반응 속도 추가설정 가능<br />
  29. 29. Step 3. Best<br />WM_TOUCH를 통한 구현<br />Demo<br />
  30. 30. 터치 프로그래밍 : 단계별 적용<br />Doing nothing!<br />Windows 7 에서실행하기만 하면 얻는 기능<br /><ul><li>WM_GESTURE
  31. 31. 적은 수정비용으로 기본적인 동작 구현
  32. 32. WM_TOUCH
  33. 33. 가장 강력하고 유연한 기능 구현 가능</li></li></ul><li>
  34. 34. Resources<br />Microsoft Confidential<br />Windows Developer Center (MSDN)<br />http://msdn.microsoft.com/en-us/windows<br />Windows 7 Training Kit<br />Channel 9 - http://channel9.msdn.com/learn/windows <br />Windows 7 Developers Blog<br />http://windowsteamblog.com/blogs/developers/default.aspx<br />Windows 7 on Channel 9 <br />http://channel9.msdn.com/windows <br />

×