PointerDevice Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Admite la capacidad de identificar los dispositivos de puntero conectados y determinar sus funcionalidades.
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
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Ejemplos
En el código siguiente se muestra cómo usar 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;
}
}
Comentarios
Los valores devueltos por las propiedades que se describen aquí se basan en el número total de dispositivos de puntero conectados: las propiedades booleanas devuelven true si un dispositivo admite una funcionalidad específica y las propiedades numéricas devuelven el valor máximo expuesto por todos los dispositivos.
El ejemplo de funcionalidades de dispositivo muestra cómo detectar la presencia de dispositivos de entrada y recuperar las funcionalidades y atributos de cada dispositivo.
Nota
Esta clase no es ágil, lo que significa que debe tener en cuenta su modelo de subprocesos y el comportamiento de serialización. Para obtener más información, consulte Subprocesos y serialización (C++/CX) y Uso de objetos Windows Runtime en un entorno multiproceso (.NET).
Propiedades
IsIntegrated |
Obtiene un valor que indica si el dispositivo de puntero es un dispositivo integrado. Por ejemplo, una pantalla de vídeo con un digitalizador táctil integrado en comparación con un digitalizador de lápiz o lápiz externo. |
MaxContacts |
Obtiene un valor que indica el número máximo de contactos admitidos por el dispositivo de entrada. |
MaxPointersWithZDistance |
Obtiene el número máximo de contactos de desplazamiento admitidos por el dispositivo de entrada. |
PhysicalDeviceRect |
Obtiene las coordenadas del rectángulo delimitador admitido por el dispositivo de entrada. |
PointerDeviceType |
Obtiene el tipo de dispositivo de puntero. |
ScreenRect |
Obtiene las coordenadas de pantalla que se asignan al rectángulo delimitador admitido por el dispositivo de entrada. |
SupportedUsages |
Obtiene una colección que contiene los usos de dispositivos de puntero admitidos. |
Métodos
GetPointerDevice(UInt32) |
Obtiene información sobre el dispositivo de puntero asociado al identificador de puntero de entrada especificado. |
GetPointerDevices() |
Obtiene información sobre los dispositivos de puntero conectados al sistema. |