정보

Windows에서 타블렛 입력받기

1b05ee29562071a634b8601b4bbbeaf3Windows 운영체제에서 타블렛 입력을 받기 위해서는 WinTab32.dll의 사용을 병행해야 합니다. WinTab32.dll을 이용한 타블렛 입력 방법은 웹에서도 왠만한 검색어를 잘 선정해서 검색하지 않으면 자료가 나오지 않을 정도로 자료 구하기가 희박합니다. 사실, WACOM의 개발자 페이지(http://www.wacomeng.com/index.html)에 가보면 예제 코드가 존재합니다. 근데, 그 예제 코드라는게 전부 실행하면 프로그램이 종료할 때까지 마우스와 타블렛의 인식이 따로놀게 됩니다. 즉, 타블렛 펜을 움직여도 마우스는 움직이지 않지요. 타블렛으로 WM_MOUSEMOVE와 같은 메시지를 받을 수 없게 된다는 얘기입니다.

그럼, 타블렛 입력을 받아봅시다. 먼저, WACOM 개발자 페이지의 Windows 탭에서 예제 코드를 받습니다. 압축을 풀어서 내용물을 확인하면 Include 폴더와 WacUtils 폴더가 있습니다. 이 두 폴더 모두 필요합니다. 개발하는 프로젝트(이 포스트에서는 Win32 프로젝트 템플릿에 빈 프로젝트를 체크하지 않은 상태로 프로젝트를 만들어 보여드리겠습니다)로 복사합니다. Utils.c 파일은 사용자 컴파일이 필요하므로 프로젝트 컴파일 목록에 추가합니다.

11a260dad111223faa4ddefd59b7879d

이제 상단에 Utils.h 파일을 포함시키고 프로그램이 시작할 때 LoadWintab 함수를, 프로그램이 끝날 때 UnloadWintab 함수를 호출합니다.
(이 부분부터 사용자에 따라 오류가 발생할 수 있으나 모두 수정할 수 있는 오류입니다. 아래에서 파일을 받아보시면 아시겠지만 원본 예제의 헤더 및 소스 파일에서 일부 수정한 부분이 있습니다.)

bcdba802eb3177a4c91f54a62893dadc

위 스크린샷에는 없지만 프로그램이 return을 호출하기 전(프로그램 종료 전)에 UnloadWintab 함수를 호출하고 있습니다.

이제 패킷을 구성해야 합니다. 사용자가 어떻게 구성하느냐에 따라 패킷이 받아오는 데이터가 달라질 수 있습니다.

이제 창이 생성되면 WinTab을 설정하도록 합니다. 여기서는 창 생성 메시지를 받았을 때 설정하도록 했습니다.

1149dc33b5394bfe2fd82314e59c826d

마지막으로 패킷을 받도록 하겠습니다. 패킷을 받는 것은 메시지로만 가능합니다.

65107385934cbb47736831c492f2b0f7

실행하고 타블렛으로 꾹 누르거나 지우개로 입력하면 창 제목 표시줄이 변경되는 것을 보실 수 있습니다.

X, Y 좌표는 절대 좌표로 나올 수 있기 때문에 WM_MOUSEMOVE로 받는 편이 가장 좋습니다. 위에서는 그렇게 설정하지 않았지만 기본 제공하는 WACOM의 예제들을 보시면 어떻게 WT_PACKET으로 좌표까지 받을 수 있는지 확인하실 수 있을 것입니다.

Example

광고

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.