태블릿 PC에서 스타일러스가 "들어올려지면" 무슨 일이 발생합니까?
-
09-06-2019 - |
문제
나는 레거시 프로젝트를 진행 중입니다. VC++/Win32/MFC
.최근에는 응용 프로그램이 다음에서 작동해야 한다는 요구 사항이 되었습니다. 태블릿 PC, 이로 인해 수많은 새로운 문제가 발생했습니다.저는 이러한 문제를 해결하기 위해 노력해 왔으며, 하지만 전문가의 제안을 활용할 수 있는 부분이 하나 남았습니다.
활성 표면에서 스타일러스를 "들어올림"으로 인해 발생하는 특정 버그가 있습니다.기본적으로 마우스 커서는 사라졌다가 다시 화면으로 "누르면" 다시 나타납니다.
이는 응용 프로그램에서 설명되지 않은 것이 합리적입니다.당신은 할 수 없습니다 승강기 데스크탑 PC의 커서.그래서 제가 찾고 있는 것은 리프트가 발생할 때 어떤 일이 발생하는지(Windows 메시지 등의 측면에서) 좋은 개요입니다.이는 초점 변경 및 마우스 오버 이벤트로만 해석됩니까?내 버그에는 커서 변경도 포함된 것 같습니다(리프트와 관련이 없을 수도 있음).확실히 예상치 못한 "리프트"로 인해 애플리케이션의 도구 처리 상태가 중단되고 있습니다.
따라서 실질적인 질문은 다음과 같습니다.
- 스타일러스 "리프트"가 발생하면 어떻게 됩니까?언론?
- 이를 감지하기 위해 어떤 API 호출을 사용할 수 있습니까?플래그/값이 설정된 표준 메시지로 변환됩니까?
- 개발 PC가 데스크톱일 때 이를 테스트/에뮬레이션하는 좋은 방법은 무엇입니까?내가 여기서 장님이 된 걸까요?(태블릿PC는 주기적으로 접속만 합니다)
- 태블릿 스타일러스 인식에 대한 올바른 동작이나 모범 사례는 무엇입니까?
고려해 주셔서 감사합니다
해결책
태블릿 사용자로서 저는 귀하의 몇 가지 질문에 답변해 드릴 수 있습니다.
첫 번째:
가상 키보드의 키를 누르기 위해 스타일러스가 초점이 맞춰진 창 밖으로 나와야 하는 경우 창에 "키보드 초점"을 쉽게 유지할 수 없습니다.
내가 사용한 대부분의 가상 키보드(Windows 태블릿 입력 패널과 우분투 아래의 키보드)는 입력 중인 프로그램이 "키보드 포커스"를 유지하도록 허용합니다.
스타일러스 "리프트"가 발생하면 어떻게 됩니까?언론?
Windows에서는 압력 값이 떨어지지만 그 외에는 아무런 이벤트가 없습니다.(리눅스는 잘 모르겠습니다.)
이를 감지하기 위해 어떤 API 호출을 사용할 수 있습니까?플래그/값이 설정된 표준 메시지로 변환됩니까?
위에서 언급한 것처럼 압력 값을 얻을 수 있으면 이를 사용할 수 있습니다.
개발 PC가 데스크톱일 때 이를 테스트/에뮬레이션하는 좋은 방법은 무엇입니까?내가 여기서 장님이 된 걸까요?(태블릿PC는 주기적으로 접속만 합니다)
스타일러스를 다른 곳에 놓으면 포인터의 전역 좌표가 변경되므로 전역 포인터 값을 변경할 수 있는 모든 것을 사용하여 갑작스러운 포인터 이동을 에뮬레이트할 수 있습니다.(Java의 Robot 클래스를 사용하면 이 작업이 상당히 쉬워집니다.)
태블릿 스타일러스 인식에 대한 올바른 동작이나 모범 사례는 무엇입니까?
Microsoft가 말하는 내용을 읽어 보시기 바랍니다. MSDN 웹 사이트에는 훌륭한 기사가 많이 있습니다.(http://msdn.microsoft.com/en-us/library/ms704849(VS.85).aspx) 응용 프로그램의 버튼 크기가 큰 차이가 있음을 지적합니다.
이것이 도움이 되었기를 바랍니다.
다른 팁
내가 이해하는 바에 따르면 "리프트" 이벤트는 없습니다. 유일한 이벤트는 나중에 스타일러스를 화면으로 다시 가져올 때 발생합니다.물론 이는 특정 드라이버 등에 따라 다릅니다.
더 나쁜 것은 당신이 설명하는 버그가 일반적인 마우스로도 재현될 수 있다는 것입니다.가능한 한 빨리 마우스를 움직여 보십시오. 거의 확실하게 한 번에 여러 픽셀을 이동할 것입니다.또는 가장 높은 포인터 속도로 마우스 설정을 구성한 경우 수십 또는 수백 개가 될 수도 있습니다.한 번 업데이트하면 마우스가 100,100이 될 수 있습니다.바로 다음 업데이트에서는 200,300이 될 수 있습니다.
Windows에서는 압력 값이 떨어지지만 그 외에는 아무런 이벤트가 없습니다.(리눅스는 잘 모르겠습니다.)
리눅스에서는 "ProximityEvents"를 얻을 수 있습니다
대부분 이러한 이벤트 WT_PROXIMITY는 창에서 사용 가능합니다(다음을 참조하십시오: http://www.wacomeng.com/devsupport/ibmpc/wacomwindevfaq.html )
@Greg - 명확히 말하면 태블릿과 스타일러스가 내장된 노트북 PC입니다.장치에는 전용 키보드가 없으며(터치스크린의 가상 키보드임) wacom 입력 장치가 아닙니다.혼란을 드려 죄송합니다.
다음이 있는 것으로 보입니다. SDK 압력과 같은 특별한 세부 정보를 얻을 수 있는 Microsoft Windows XP Tablet PC Edition의 경우.그러나 기존 비 태블릿 인식 응용 프로그램과 어느 정도 표준 호환성이 있어야 한다는 것을 알고 있습니다.태블릿에 Spy++를 설치하고 특정 메시지/이벤트를 필터링해 볼 수 있을 것 같습니다.