touch ux with win32

31
Touch UX with win32 API win32 API 를 를를를 를를를 7 를 를를 를를 를를를를 2010. 3. 8. Windows 7 Technical Briefing 를 를 를 http://vsts2010.net [email protected] NC Soft

Upload: sung-ki-choi

Post on 26-Jan-2015

3.938 views

Category:

Documents


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Touch Ux With Win32

Touch UX with win32 APIwin32 API 를 이용해 윈도우 7 의 멀티 터치 구현하기2010. 3. 8. Windows 7 Technical Briefing

최 성 기http://[email protected] Soft

Page 2: Touch Ux With Win32

Agenda

• Intro : 멀티 터치

• 터치 프로그래밍 준비사항

• win32 API 로 터치 인식하기

• Reference

Page 3: Touch Ux With Win32

Touch Interface

• UX( 사용자 경험 ) 분야의 가장 뜨거운 이슈• 터치형 인터페이스는 계속 성장할 전망

Page 4: Touch Ux With Win32

Multi-Touch is Here

http://cyberimpacts.com/,http://www.intomobile.com/2007/03/11/apple-iphone-disappointing-lcd-screen.html

• 싱글터치는 기존 마우스 인식과 유사 .• 싱글 터치를 넘어 멀티 터치의 시대로 .• 멀티터치의 지원으로 표현력은 크게 증폭

Page 5: Touch Ux With Win32

터치 프로그래밍 준비사항

Page 6: Touch Ux With Win32

Visual Studio 2010

• 2010. 2. 9. RC 버전 공개 .• 2010. 4 월 정식 버전 출시 .• 2010. 6 월 한글판 출시 .

• 이전 컴파일러 + Windows 7 SDK -> 개발가능

Page 7: Touch Ux With Win32

하드웨어 에뮬레이터

• http://multitouchvista.codeplex.com/ • 멀티터치 인식 드라이버 ( 오픈소스 )

Page 8: Touch Ux With Win32

터치 프로그래밍 : 단계별 적용

1Good

2Better

3Best

Page 9: Touch Ux With Win32

터치 프로그래밍 : 단계별 적용

• Doing nothing!• Windows 7 에서 실행하기만 하면 얻는 기능

1Good

2Better

3Best

Page 10: Touch Ux With Win32

터치 프로그래밍 : 단계별 적용

• WM_GESTURE• 적은 수정비용으로 기본적인 동작 구현

1Good

2Better

3Best

Page 11: Touch Ux With Win32

터치 프로그래밍 : 단계별 적용

• WM_TOUCH• 가장 강력하고 유연한 기능 구현 가능

3Best

2Better

1Good

Page 12: Touch Ux With Win32

Step 1. Good

Window 7 의 기본 제공 터치 UX

Demo

Page 13: Touch Ux With Win32

터치 프로그래밍 : 단계별 적용

• WM_GESTURE• 적은 수정비용으로 기본적인 동작 구현

1Good

2Better

3Best

Page 14: Touch Ux With Win32

GetSystemMetrics()

• GetSystemMetrics()– SM_DIGITIZER : 입력장치 상태 확인– SM_TABLETPC : 타블렛 pc 여부 확인– SM_MAXIMUMTOUCHES : 최대 동시입력 개수

Page 15: Touch Ux With Win32

WM_GESTURE 의 9 가지 제스처

http://msdn.microsoft.com/en-us/library/dd940543(VS.85).aspx

Page 16: Touch Ux With Win32

WM_GESTURE 의 9 가지 제스처

Panning Selection / Drag

Rotate Zoom

Page 17: Touch Ux With Win32

WM_GESTURE 의 9 가지 제스처

Press and Tap Press and Hold

Two-Finger Tap Flicks

Page 18: Touch Ux With Win32

WM_GESTURENOTIFY

• SetGestureConfig( … )

• 원하는 제스쳐만을 활성화 해준다 .

GC_ALLGESTUREGC_PANGC_PAN_WITH_SINGLE_FINGURE_VERTICALLYGC_PAN_WITH_SINGLE_FINGURE_HORIZONTAL

LYGC_PAN_WITH_INERTIA

Page 19: Touch Ux With Win32

WM_GESTURE

• 사용자가 응용프로그램 윈도우에 제스처를 수행했음을 알려줌 .

• 제스처의 중심좌표와 , 각 제스처에 따른 추가 정보들을 포함

• lParam 으로 GESTUREINFO 구조체를 얻는다 .

Page 20: Touch Ux With Win32

struct GESTUREINFO

Page 21: Touch Ux With Win32

Panning 제스처의 메시지 예시WM_GESTURENOTIFYWM_GESTURE (GID_BEGIN)WM_GESTURE (GID_PAN, GF_BEGIN)WM_GESTURE (GID_PAN, no flags)…WM_GESTURE (GID_PAN, GF_INERTIA)…WM_GESTURE (GID_PAN, GF_END)WM_GESTURE (GID_END)

Page 22: Touch Ux With Win32

Step 2. Better

WM_GESTURE 를 통한 구현

Demo

Page 23: Touch Ux With Win32

터치 프로그래밍 : 단계별 적용

• WM_TOUCH• 가장 강력하고 유연한 기능 구현 가능

3Best

2Better

1Good

Page 24: Touch Ux With Win32

Mouse Messages &GetMessageExtraInfo()

• GetMessageExtraInfo() 함수를 이용해메시지의 추가정보를 얻을 수 있다 .

• Mouse up / down 메시지는 터치나 펜으로 입력된 경우를 구분할 수 있다 .

• Ex) Window 7 의 기본 Mouse 입력 처리

Page 25: Touch Ux With Win32

WM_TOUCH

• 가장 직접적인 형태의 터치 데이터를 제공• 마우스 메시지와 유사한 컨셉• 이동 , 회전 , 줌 변환을 동시 적용 가능 .

• Finger painting• Custom Gestures• Feeding higher-level controls ( ex. Manipula-

tion )

Page 26: Touch Ux With Win32

WM_TOUCH 가 전달되도록 설정• BOOL RegisterTouchWindow( … )

• WM_GESTURE 대신 WM_TOUCH 를 받는다 .

• TWF_WANTPALM : 반응 속도 추가설정 가능

Page 27: Touch Ux With Win32

Step 3. Best

WM_TOUCH 를 통한 구현

Demo

Page 28: Touch Ux With Win32

터치 프로그래밍 : 단계별 적용

• Doing nothing!• Windows 7 에서 실행하기만 하면 얻는 기능

• WM_GESTURE• 적은 수정비용으로 기본적인 동작 구현

• WM_TOUCH• 가장 강력하고 유연한 기능 구현 가능

Page 29: Touch Ux With Win32
Page 30: Touch Ux With Win32

Microsoft Confidential

Resources

• Windows Developer Center (MSDN)– http://msdn.microsoft.com/en-us/windows

• Windows 7 Training Kit– Channel 9 - http://channel9.msdn.com/learn/

windows

• Windows 7 Developers Blog– http://windowsteamblog.com/blogs/developers/

default.aspx

• Windows 7 on Channel 9 – http://channel9.msdn.com/windows

Page 31: Touch Ux With Win32