PointerDevice クラス

定義

接続されているポインター デバイスを識別し、その機能を決定する機能をサポートします。

public ref class PointerDevice sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
class PointerDevice final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
public sealed class PointerDevice
Public NotInheritable Class PointerDevice
継承
Object Platform::Object IInspectable PointerDevice
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

次のコードは、PointerDevice の使用方法を示しています。

/// <summary> 
/// Invoked when this page is about to be displayed in a Frame. 
/// </summary> 
/// <param name="e">Event data that describes how this page was reached.  The Parameter 
/// property is typically used to configure the page.</param> 
protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    string Buffer; 

    Buffer = "List of all pointer devices: \n\n"; 

    var PointerDeviceList = Windows.Devices.Input.PointerDevice.GetPointerDevices(); 
    int displayIndex = 1; 

    foreach (Windows.Devices.Input.PointerDevice PointerDevice in PointerDeviceList) 
    { 
        Buffer += string.Format("Pointer device " + displayIndex + ":\n"); 
        Buffer += string.Format("This pointer device type is " + 
            PointerType(PointerDevice) + "\n"); 
        Buffer += string.Format("This pointer device is " + 
            (PointerDevice.IsIntegrated ? "not " : "") + "external\n"); 
        Buffer += string.Format("This pointer device has a maximum of " + 
            PointerDevice.MaxContacts + " contacts\n"); 
        Buffer += string.Format("The physical device rect is " + 
            PointerDevice.PhysicalDeviceRect.X.ToString() + ", " + 
            PointerDevice.PhysicalDeviceRect.Y.ToString() + ", " + 
            PointerDevice.PhysicalDeviceRect.Width.ToString() + ", " + 
            PointerDevice.PhysicalDeviceRect.Height.ToString() + "\n"); 
        Buffer += string.Format("The screen rect is " + 
            PointerDevice.ScreenRect.X.ToString() + ", " + 
            PointerDevice.ScreenRect.Y.ToString() + ", " + 
            PointerDevice.ScreenRect.Width.ToString() + ", " + 
            PointerDevice.ScreenRect.Height.ToString() + "\n\n"); 
    }  
    PointerOutputTextBlock.Text = Buffer; 
}
#include <sstream>
#include <winrt/Windows.Devices.Input.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.UI.Xaml.Controls.h>
using namespace winrt;
using namespace Windows::Devices::Input;
using namespace Windows::UI::Xaml::Controls;

...

void PointerGetSettings_Click(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args)
{
    auto b{ sender.try_as<Button>() };
    if (b)
    {
        Windows::Foundation::Collections::IVectorView<PointerDevice> pointerDeviceList{ PointerDevice::GetPointerDevices() };
        std::wostringstream buffer;

        for (uint32_t i = 0; i < pointerDeviceList.Size(); i++)
        {
            winrt::hstring displayIndex{ winrt::to_hstring(i + 1) };
            buffer << L"Pointer device " << displayIndex.c_str() << std::endl;
            buffer << L"This pointer device type is ";

            switch (pointerDeviceList.GetAt(i).PointerDeviceType())
            {
            case PointerDeviceType::Mouse:
                buffer << L"Mouse" << std::endl;
                break;
            case PointerDeviceType::Pen:
                buffer << L"Pen" << std::endl;
                break;
            case PointerDeviceType::Touch:
                buffer << L"Touch" << std::endl;
                break;
            default:
                buffer << L"unknown" << std::endl;
            }

            buffer << L"This pointer device is " << (pointerDeviceList.GetAt(i).IsIntegrated() ? L"not " : L"") << L"external" << std::endl;
            buffer << L"This pointer device has a maximum of " << pointerDeviceList.GetAt(i).MaxContacts() << L" contacts" << std::endl;
            buffer << L"The physical device rect is " <<
                pointerDeviceList.GetAt(i).PhysicalDeviceRect().X << L", " <<
                pointerDeviceList.GetAt(i).PhysicalDeviceRect().Y << L", " <<
                pointerDeviceList.GetAt(i).PhysicalDeviceRect().Width << L", " <<
                pointerDeviceList.GetAt(i).PhysicalDeviceRect().Height << std::endl;
            buffer << L"The screen rect is " <<
                pointerDeviceList.GetAt(i).ScreenRect().X << L", " <<
                pointerDeviceList.GetAt(i).ScreenRect().Y << L", " <<
                pointerDeviceList.GetAt(i).ScreenRect().Width << L", " <<
                pointerDeviceList.GetAt(i).ScreenRect().Height << std::endl << std::endl;
        }

        PointerOutputTextBlock().Text(buffer.str());
    }
}
void SDKSample::DeviceCaps::Pointer::PointerGetSettings_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) 
{ 
    Button^ b = safe_cast<Button^>(sender); 
    if (b != nullptr) 
    { 
        Windows::Foundation::Collections::IVectorView<PointerDevice^>^ PointerDeviceList = PointerDevice::GetPointerDevices(); 
        Platform::String^ Buffer; 

        for (unsigned i = 0; i < PointerDeviceList->Size; i++) { 
            Platform::String^ displayIndex = (i + 1).ToString(); 
            Buffer += "Pointer device " + displayIndex + ":\n"; 
            Buffer += "This pointer device type is " + PointerType(PointerDeviceList->GetAt(i)) + "\n"; 
            Buffer += "This pointer device is " + (PointerDeviceList->GetAt(i)->IsIntegrated ? "not " : "") + "external\n"; 
            Buffer += "This pointer device has a maximum of " + PointerDeviceList->GetAt(i)->MaxContacts.ToString() + " contacts\n"; 
            Buffer += "The physical device rect is " + 
                PointerDeviceList->GetAt(i)->PhysicalDeviceRect.X.ToString() + ", " + 
                PointerDeviceList->GetAt(i)->PhysicalDeviceRect.Y.ToString() + ", " + 
                PointerDeviceList->GetAt(i)->PhysicalDeviceRect.Width.ToString() + ", " + 
                PointerDeviceList->GetAt(i)->PhysicalDeviceRect.Height.ToString() + "\n"; 
            Buffer += "The screen rect is " + 
                PointerDeviceList->GetAt(i)->ScreenRect.X.ToString() + ", " + 
                PointerDeviceList->GetAt(i)->ScreenRect.Y.ToString() + ", " + 
                PointerDeviceList->GetAt(i)->ScreenRect.Width.ToString() + ", " + 
                PointerDeviceList->GetAt(i)->ScreenRect.Height.ToString() + "\n\n"; 
        } 

        PointerOutputTextBlock->Text = Buffer; 
    } 
}

注釈

ここで説明するプロパティによって返される値は、接続されているポインター デバイスの合計数に基づいています。ブール型のプロパティは、1 つのデバイスが特定の機能をサポートし、数値プロパティがすべてのデバイスによって公開される最大値を返す場合に true を返します。

デバイス機能のサンプルでは、入力デバイスの存在を検出し、各デバイスの機能と属性を取得する方法を示します。

注意

このクラスはアジャイルではありません。つまり、スレッド モデルとマーシャリング動作を考慮する必要があります。 詳細については、「スレッド処理とマーシャリング (C++/CX)」および「マルチスレッド環境でのWindows ランタイム オブジェクトの使用 (.NET)」を参照してください。

プロパティ

IsIntegrated

ポインター デバイスが統合デバイスであるかどうかを示す値を取得します。 たとえば、外部ペン/スタイラス デジタイザーと比較して、タッチ デジタイザーが統合されたビデオディスプレイです。

MaxContacts

入力デバイスでサポートされている連絡先の最大数を示す値を取得します。

MaxPointersWithZDistance

入力デバイスでサポートされているホバー連絡先の最大数を取得します。

PhysicalDeviceRect

入力デバイスでサポートされている外接する四角形の座標を取得します。

PointerDeviceType

ポインター デバイスの種類を取得します。

ScreenRect

入力デバイスでサポートされている外接する四角形にマップされる画面座標を取得します。

SupportedUsages

サポートされている ポインター デバイスの使用状況を含むコレクションを取得します。

メソッド

GetPointerDevice(UInt32)

指定した入力ポインター ID に関連付けられているポインター デバイスに関する情報を取得します。

GetPointerDevices()

システムに接続されているポインター デバイスに関する情報を取得します。

適用対象

こちらもご覧ください