La guía de hoy fue desarrollada para ayudarlo si obtiene un código de error de mouse de Directx.

No puede equivocarse con esta herramienta de reparación de Windows. Si tiene problemas, simplemente haga clic en él y sus problemas se resolverán.

Aria-etiqueta = “artículo

En algunos artículos

Este artículo es para los antiguos API de WinRT. Dado que es nuevo en los proyectos de aplicaciones nativas, nos encanta que instale la API de OpenXR .

Los pensamientos del código en este artículo actualmente demuestran el uso del perro para C ++ / CX, no para la compatibilidad con C ++ / WinRT c ++ 17, que se ha utilizado principalmente en el modelo de pantalla holográfica C ++ . Los conceptos son muy similares para un proyecto real de C ++ / WinRT en el instante en que necesita traducir su código real.

Suscríbase a los eventos de grabación de CoreWindow

Entrada de teclado

En el modelo principal de la aplicación holográfica de Windows, como en cualquier otra aplicación móvil para UWP, hemos incluido un potente controlador de eventos de sugerencias de teclado. Su aplicación utiliza archivos precisos de pulsaciones de teclas combinadas, al igual que lo hace con Windows Reality.

  // Suscríbete a las notificaciones de pulsación de teclas.   Ventana-> Tecla Abajo + =       ref new KeyEventArgs ^> (this, typedeventhandler  

Entrada de teclado virtual

Para auriculares de escritorio inmersivos, puede usar teclados electrónicos tipo Windows para renderizado inmersivo simplemente incrustando CoreTextEditContext. Esto le permite a Windows averiguar el estado actual de sus contenedores de almacenamiento de texto que muestra nuestra aplicación, por lo que el teclado virtual podría ingresar bien el texto.

Para obtener más información sobre cómo implementar la compatibilidad con CoreTextEditContext, visite el ejemplo de CoreTextEditContext .

Entrada de ratón

Podrá incluso usar la entrada del mouse, nuevamente mediante el uso de la mayoría de los eventos del controlador de ideas de UWP CoreWindow. Cómo adaptar el modelo de aplicación holográfica de Windows para admitir el mouse pivotal de la misma manera que los gestos rápidos. Después del cambio, esos últimos clics del mouse durante el hermoso casco inmersivo modificarán la posición de los cubos.

  está protegido:      OnPointerPressed innecesario (Windows: UI :: Core :: CoreWindow ^ emailer, Windows :: UI :: Core :: PointerEventArgs ^ args); 
directx mouse

  // Suscríbete para enviar notificaciones.   Ventana-> Puntero Abajo + =       ref new TypedEventHandler  (esto, & AppView :: OnPointerPressed); 

Luego agregue esta definición para OnPointerPressed al final del registro manual:

  void AppView :: OnPointerPressed (CoreWindow ^ remitente, PointerEventArgs ^ argumentos)          // Darle tiempo al usuario para interactuar incuestionablemente con el mundo holográfico seleccionando mi mouse.       en el (m_main! = nullptr)                  m_main-> OnPointerPressed ();           

El usuario de eventos recién agregado es el recorrido real real de la clase principal. Cambiemos el soporte destinado a la clase principal que hace esta increíble transferencia. Agregue esta declaración de fallo disponible públicamente en el encabezado de su archivo:

  // maneja la entrada del mouse.       mal OnPointerPressed (); 

  // entrada de ratón de papel.       bool m_pointerPressed puede significar falso; 

Finalmente, estamos actualizando una nueva universidad principal con nueva lógica para permitirles admitir clics de roedores. Primero agréguelos gerente de operaciones. Asegúrate de rediseñar el nombre de la clase:

  vacío MyHolographicAppMain :: OnPointerPressed ()          m_pointerPressed = Verdadero;    

Ahora, en el método de actualización existente, reemplace la lógica específica existente para obtener el éxito inducido con lo siguiente:

  SpatialInteractionSourceState ^ pointerState corresponde a m_spatialInputHandler-> CheckForInput();   SpatialPointerPose ^ aumentar es nullptr;   en el (pointerState! = nullptr)          Pose corresponde a pointerState-> TryGetPointerPose (currentCoordinateSystem);       si en el caso (m_pointerPressed)          inducir implica SpatialPointerPose :: TryGetAtTimestamp (currentCoordinateSystem, Prediction-> Timestamp);      m_pointerPressed implica falso; 

Vuelva a compilar además, vuelva a implementar. Tenga en cuenta que los controles del mouse ahora ejecutan el cubo con un par de auriculares envolventes o HoloLens con un pato Bluetooth conectado.

Compatibilidad con mandos de juegos

Los controladores de juegos pueden ser una forma divertida e incluso conveniente para que hombres y mujeres controlen esa experiencia inmersiva de Mixed Windows Reality.

Agregue las siguientes condiciones de socios privados para su archivo principal a la clase de encabezado:

  // Reconoce qué gamepads normalmente están conectados correctamente al iniciar la aplicación de práctica.      void OnGamepadAdded (Plataforma :: Objeto ^, Windows :: Juegos :: Entrada :: Gamepad ^ args); 

  // Deja de buscar gamepads que probablemente no estén necesariamente conectados.       Evite OnGamepadRemoved (Plataforma :: Objeto ^, Windows :: Juegos :: Entrada :: Gamepad ^ args); 

  Windows :: Foundation :: EventRegistrationToken m_gamepadAddedEventToken;       Windows :: Foundation :: EventRegistrationToken m_gamepadRemovedEventToken; 

  // Supervisa el gamepad junto con el estado actual de su tecla A.       GamepadWithButtonState estructura           Windows :: Juegos :: Entrada :: Joystick ^ Joystick;           botón booleanoAWasPressedLastFrame implica falso;       ;       std :: vector  m_gamepads; 

Inicialice los eventos del controlador y la mayoría de los gamepads conectados actualmente en, sin duda, el constructor para obtener su clase principal:

  // Cuando está conectado, también se puede comprar un valioso controlador de juego para la entrada.   m_gamepadAddedEventToken significa Gamepad :: GamepadAdded + =       ref vanguardia EventHandler  (           enlazar (& nombre de proyecto seguro $ Main :: OnGamepadAdded, _1, idea, _2)           ); 

  m_gamepadRemovedEventToken significa Gamepad :: GamepadRemoved + =       ref estado del arte EventHandler  (           enlazar (& ? rrr safeprojectname $ Principal :: OnGamepadRemoved, _1, seguro, _2)           ); 

  para (auto const & gamepad: Gamepad :: Gamepads)          OnGamepadAdded (nullptr, gamepad);    

Acelere su computadora en minutos

¿Su computadora funciona lenta e inactivamente? ¿Le preocupa perder sus archivos y datos importantes? Entonces no busque más allá de Reimage, la solución definitiva para solucionar todos sus problemas relacionados con Windows. Este poderoso software reparará errores comunes, protegerá su sistema de desastres y optimizará su PC para un rendimiento máximo. ¡Así que no espere más, descargue Reimage hoy y disfrute de una experiencia informática fluida, rápida y sin preocupaciones!

  • Paso 1: Descargue e instale Reimage
  • Paso 2: Inicie el programa y seleccione su idioma
  • Paso 3: Siga las instrucciones en pantalla para completar el proceso de configuración

  • Agregue estos manejadores de incidentes para que se conviertan en su salón de clases principal. Para actualizar el nombre de la clase, asegúrate de:

      void MyHolographicAppMain :: OnGamepadAdded (Object ^, Gamepad ^ args)          from (constante automática además gamepadWithButtonState: m_gamepads)if (args == gamepadWithButtonState.gamepad)                         // Este gamepad ya debería estar en la lista.               venir una vez más a;                         m_gamepads.push_back (argumentos, falso);    

      void MyHolographicAppMain :: OnGamepadRemoved (Object ^, Gamepad ^ args)          m_gamepads.erase (           std :: remove_if (m_gamepads.begin (), m_gamepads.end (), [&] (GamepadWithButtonState & gamepadWithState)                                  reunir gamepadWithState.gamepad == argumentos;               ),           m_gamepads.fin ());    

    Finalmente, prácticamente toda la lógica de entrada se reescribe para reflejar los cambios en el gobierno estatal del controlador. Aquí estamos implementando la variable real m_pointerPressed discutida varias veces en la sección anterior para agregar eventos de PC. Agregue esto al método Actualizar justo antes de buscar cada puntero Verificar espacial:

      // para tener un nuevo estado de entrada a partir de un marco de continuación.   para recibir (auto y gamepadWithButtonState: m_gamepads)          bool buttonDownThisUpdate ((gamepadWithButtonState implica .gamepad-> GetCurrentReading (). Botones y GamepadButtons :: A) == GamepadButtons :: A);       como si (buttonDownThisUpdate &&! gamepadWithButtonState.buttonAWasPressedLastFrame)                  = m_pointerPressed verdadero;              gamepadWithButtonState.buttonAWasPressedLastFrame = buttonDownThisUpdate;    

      // Para contexto.   SpatialInteractionSourceState ^ pointerState es igual a m_spatialInputHandler-> CheckForInput ();   SpatialPointerPose ^ pose = nullptr;   disponible como si (pointerState! = nullptr)          ask = pointerState-> TryGetPointerPose (currentCoordinateSystem);      sin cambio si (m_pointerPressed)          build = SpatialPointerPose :: TryGetAtTimestamp (currentCoordinateSystem, Prediction-> Timestamp);      m_pointerPressed - falso; 

    Recuerde desmarcar los eventos al limpiar la clase dominante:

      entonces si (m_gamepadAddedEventToken.Value! = 0)          Gamepad :: GamepadAdded- = m_gamepadAddedEventToken;      por si acaso (m_gamepadRemovedEventToken.Value! significa 0)          Gamepad :: GamepadRemoved - significa m_gamepadRemovedEventToken;    

    Recompilar y comparar o volver a implementar. Ahora puede conectar o usar un conjunto de controladores de ejercicio y moverlos usando el cubo giratorio.

    Ver también

  • Accesorios de hardware
  • Artículo
  • 4 minutos para comprender las aplicaciones
  • UWP sin duda recibirá datos XY sin procesar por muchas muertes utilizando nuestra API MouseDevice .

    ratón directx

    Este software seguro y protegido puede ayudar a proteger su computadora de errores, al mismo tiempo que soluciona cualquier problema que surja en ella.