다음을 통해 공유


PointerPointProperties 클래스

정의

PointerPoint 개체에 대한 확장 속성을 제공합니다.

대부분의 경우 선택한 Windows 8 언어 프레임워크의 포인터 이벤트 처리기(JavaScript를 사용하는 Windows 앱, C++, C#또는 Visual Basic을 사용하는 UWP 앱 또는 C++와 함께 DirectX를 사용하는 UWP 앱)를 통해 포인터 정보를 가져오는 것이 좋습니다.

이벤트 인수가 앱에 필요한 포인터 세부 정보를 노출하지 않는 경우 getCurrentPointgetIntermediatePoints 메서드 또는 currentPointintermediatePoints 속성을 통해 이벤트 인수에서 확장 포인터 데이터에 액세스할 수 있습니다. 포인터 데이터의 컨텍스트를 지정할 수 있으므로 getCurrentPointgetIntermediatePoints 메서드를 사용하는 것이 좋습니다.

정적 PointerPoint 메서드인 GetCurrentPointGetIntermediatePoints는 항상 앱의 컨텍스트를 사용합니다.

public ref class PointerPointProperties sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
class PointerPointProperties final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
public sealed class PointerPointProperties
Public NotInheritable Class PointerPointProperties
상속
Object Platform::Object IInspectable PointerPointProperties
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

예제

다음 예제에서는 PointerPoint 개체를 사용하여 다양한 확장 포인터 속성을 쿼리합니다.

String queryPointer(PointerPoint ptrPt)
{
    String details = "";

    switch (ptrPt.PointerDevice.PointerDeviceType)
    {
        case Windows.Devices.Input.PointerDeviceType.Mouse:
            details += "\nPointer type: mouse";
            break;
        case Windows.Devices.Input.PointerDeviceType.Pen:
            details += "\nPointer type: pen";
            if (ptrPt.IsInContact)
            {
                details += "\nPressure: " + ptrPt.Properties.Pressure;
                details += "\nrotation: " + ptrPt.Properties.Orientation;
                details += "\nTilt X: " + ptrPt.Properties.XTilt;
                details += "\nTilt Y: " + ptrPt.Properties.YTilt;
                details += "\nBarrel button pressed: " + ptrPt.Properties.IsBarrelButtonPressed;
            }
            break;
        case Windows.Devices.Input.PointerDeviceType.Touch:
            details += "\nPointer type: touch";
            details += "\nrotation: " + ptrPt.Properties.Orientation;
            details += "\nTilt X: " + ptrPt.Properties.XTilt;
            details += "\nTilt Y: " + ptrPt.Properties.YTilt;
            break;
        default:
            details += "\nPointer type: n/a";
            break;
    }

    GeneralTransform gt = Target.TransformToVisual(page);
    Point screenPoint;

    screenPoint = gt.TransformPoint(new Point(ptrPt.Position.X, ptrPt.Position.Y));
    details += "\nPointer Id: " + ptrPt.PointerId.ToString() +
        "\nPointer location (parent): " + ptrPt.Position.X + ", " + ptrPt.Position.Y +
        "\nPointer location (screen): " + screenPoint.X + ", " + screenPoint.Y;
    return details;
}
String queryPointer(PointerPoint ptrPt)
{
    String details = "";

    switch (ptrPt.PointerDevice.PointerDeviceType)
    {
        case Windows.Devices.Input.PointerDeviceType.Mouse:
            details += "\nPointer type: mouse";
            break;
        case Windows.Devices.Input.PointerDeviceType.Pen:
            details += "\nPointer type: pen";
            if (ptrPt.IsInContact)
            {
                details += "\nPressure: " + ptrPt.Properties.Pressure;
                details += "\nrotation: " + ptrPt.Properties.Orientation;
                details += "\nTilt X: " + ptrPt.Properties.XTilt;
                details += "\nTilt Y: " + ptrPt.Properties.YTilt;
                details += "\nBarrel button pressed: " + ptrPt.Properties.IsBarrelButtonPressed;
            }
            break;
        case Windows.Devices.Input.PointerDeviceType.Touch:
            details += "\nPointer type: touch";
            details += "\nrotation: " + ptrPt.Properties.Orientation;
            details += "\nTilt X: " + ptrPt.Properties.XTilt;
            details += "\nTilt Y: " + ptrPt.Properties.YTilt;
            break;
        default:
            details += "\nPointer type: n/a";
            break;
    }

    GeneralTransform gt = Target.TransformToVisual(page);
    Point screenPoint;

    screenPoint = gt.TransformPoint(new Point(ptrPt.Position.X, ptrPt.Position.Y));
    details += "\nPointer Id: " + ptrPt.PointerId.ToString() +
        "\nPointer location (parent): " + ptrPt.Position.X + ", " + ptrPt.Position.Y +
        "\nPointer location (screen): " + screenPoint.X + ", " + screenPoint.Y;
    return details;
}

설명

PointerPointProperties 클래스는 IPointerPointProperties를 구현합니다.

참고

이 클래스는 민첩하지 않으므로 스레딩 모델 및 마샬링 동작을 고려해야 합니다. 자세한 내용은 스레딩 및 마샬링(C++/CX)다중 스레드 환경(.NET)에서 Windows 런타임 개체 사용을 참조하세요.

Microsoft 대화형 입력 디바이스 아키텍처의 핵심은 구현자 포럼, Inc.에서 정의한 USB(유니버설 직렬 버스) 표준 HID(디바이스 클래스 정의)를 기반으로 합니다.

USB(유니버설 직렬 버스) HID(휴먼 인터페이스 디바이스) 표준은 사람이 컴퓨터에 직접 데이터를 입력하는 데 사용하는 키보드, 마우스 디바이스, 조이스틱 및 가상 현실 디바이스와 같은 HID(휴먼 인터페이스 디바이스)에 대한 구성 및 통신 프로토콜을 정의합니다. (USB HID 표준에 대한 자세한 내용은 USB 구현자 포럼 웹 사이트를 참조하세요.)

Windows 입력 아키텍처의 핵심은 USB(유니버설 직렬 버스) HID(휴먼 인터페이스 디바이스) 표준을 기반으로 하지만 아키텍처는 USB(유니버설 직렬 버스) 디바이스로 제한되지 않습니다. 입력 아키텍처는 직렬 포트 디바이스, i8042 포트 디바이스 및 독점 입력 디바이스도 지원합니다.

속성

ContactRect

접촉 영역의 경계 사각형을 가져옵니다(일반적으로 터치 입력에서).

ContactRectRaw

원시 입력의 경계 사각형을 가져옵니다(일반적으로 터치 입력에서).

IsBarrelButtonPressed

펜/스타일러스 디바이스의 배럴 단추를 누를지 여부를 나타내는 값을 가져옵니다.

IsCanceled

포인터 디바이스에서 입력을 취소했는지 여부를 나타내는 값을 가져옵니다.

IsEraser

입력이 펜 지우개에서 온 것인지 여부를 나타내는 값을 가져옵니다.

IsHorizontalMouseWheel

입력이 마우스 기울기 휠에서 온 것인지 여부를 나타내는 값을 가져옵니다.

IsInRange

포인터 디바이스가 센서 또는 디지타이저의 검색 범위 내에 있는지 여부를 나타내는 값을 가져옵니다(포인터가 계속 존재).

IsInverted

디지타이저 펜이 반전되었는지 여부를 나타내는 값을 가져옵니다.

IsLeftButtonPressed

입력 디바이스의 기본 작업 모드에 의해 포인터 입력이 트리거되었는지 여부를 나타내는 값을 가져옵니다.

IsMiddleButtonPressed

입력 디바이스의 3차 작업 모드에 의해 포인터 입력이 트리거되었는지 여부를 나타내는 값을 가져옵니다.

IsPrimary

여러 포인터가 등록될 때 입력이 기본 포인터의 입력인지 여부를 나타내는 값을 가져옵니다.

IsRightButtonPressed

입력 디바이스의 보조 작업 모드(지원되는 경우)에 의해 포인터 입력이 트리거되었는지 여부를 나타내는 값을 가져옵니다.

IsXButton1Pressed

첫 번째 확장 마우스 단추(XButton1)에 의해 포인터 입력이 트리거되었는지 여부를 나타내는 값을 가져옵니다.

IsXButton2Pressed

두 번째 확장 마우스 단추(XButton2)에 의해 포인터 입력이 트리거되었는지 여부를 나타내는 값을 가져옵니다.

MouseWheelDelta

마지막 포인터 이벤트의 휠 단추 입력 변경을 나타내는 값(디바이스에서 보고한 원시 값)을 가져옵니다.

Orientation

포인터 디바이스의 주 축(디지타이저 표면에 수직인 z축)을 중심으로 시계 반대 방향으로 회전하는 각도를 가져옵니다. 값이 0.0도이면 디바이스가 디지타이저의 위쪽을 향하고 있음을 나타냅니다.

PointerUpdateKind

포인터 상태 변경의 종류를 가져옵니다.

Pressure

포인터 디바이스(일반적으로 펜/스타일러스)가 디지타이저 표면에 가하는 힘을 나타내는 값을 가져옵니다.

TouchConfidence

포인터 디바이스가 터치 접촉을 거부했는지 여부를 나타내는 값을 가져옵니다.

Twist

사용자가 손가락으로 펜을 회전하는 경우와 같이 자체 주 축을 중심으로 펜 디바이스의 각도에서 시계 방향으로 회전합니다.

XTilt

Y-Z 평면과 Y축과 입력 디바이스의 축(일반적으로 펜/스타일러스)이 포함된 평면 사이의 평면 각도를 가져옵니다.

YTilt

X-Z 평면과 X축과 입력 디바이스의 축(일반적으로 펜/스타일러스)이 포함된 평면 사이의 평면 각도를 가져옵니다.

ZDistance

화면 화면에서 포인터의 z 좌표(또는 거리)를 디바이스 독립적 픽셀로 가져옵니다.

메서드

GetUsageValue(UInt32, UInt32)

원시 입력의 HID(휴먼 인터페이스 디바이스) 사용 값을 가져옵니다.

HasUsage(UInt32, UInt32)

포인터 디바이스의 입력 데이터에 지정된 HID(휴먼 인터페이스 디바이스) 사용 정보가 포함되어 있는지 여부를 나타내는 값을 가져옵니다.

적용 대상

추가 정보