De handleiding van vandaag is gemaakt die u zal helpen als u elke Directx-muisfoutcode krijgt.

U kunt niet fout gaan met deze Windows-reparatietool. Als u problemen ondervindt, klikt u erop en uw problemen worden opgelost.

Aria-label = “artikel

In sommige artikelen

Deze recensie is voor de oude native WinRT API’s. Aangezien u nieuw bent als een manier om native applicatieprojecten te gebruiken, raden we u aan de OpenXR API te installeren.

De codefragmenten van dit artikel demonstreren momenteel het voordeel ervan voor C++ / CX, nee voor C++ / WinRT b++ 17-compatibiliteit, die grotendeels wordt gebruikt in het C++ holografische weergavemodel . De conceptontwerpen lijken erg op elkaar voor een C ++ / WinRT-project wanneer individuen uw huidige manier moeten vertalen.

Abonneer je op CoreWindow-opname-evenementen

Toetsenbordinvoer

In het holografische basismodel van Windows hebben we, net als in elke andere mobiele UWP-app, een robuuste toetsenbordtip-event-handler toegevoegd. Uw softwarepakket maakt gebruik van nauwkeurige, gemengde toetsaanslagen, net als in Windows Reality.

  // Abonneer je op eindelijk toetsaanslagmeldingen.   Venster-> KeyDown + =       ref nieuwe KeyEventArgs ^> (this, typedeventhandler  

Virtuele toetsenbordinvoer

Voor meeslepende desktopheadsets kunt u virtuele Windows-invoertoetsen gebruiken voor meeslepende weergave door CoreTextEditContext in te sluiten. Hierdoor kan Windows de specifieke huidige status van uw eigen woordopslagcontainers begrijpen die door het toepassingsprogramma worden weergegeven, zodat het virtuele toetsenbord goed in tekst kan breken.

Voor meer rapporten over het implementeren van CoreTextEditContext-ondersteuning, zie alle CoreTextEditContext-voorbeelden .

Muisinvoer

Je kunt misschien zelfs muisinvoer gebruiken, opnieuw via een flink aantal van de UWP CoreWindow-invoergebruikersgebeurtenissen. Het holografische toepassingsmodel van Windows wijzigen om kritieke computermuisknop te ondersteunen op dezelfde manier als piekgebaren. Na de wijziging zal de eerdere klik van de muis in de prachtige meeslepende helm de exacte positie van de kubussen veranderen.

  is vaak beveiligd:      onnodige OnPointerPressed (Windows: UI :: Core :: CoreWindow ^ afzender, Windows :: UI :: Core :: PointerEventArgs ^ args); directx mouse

  // Abonneer je om meldingen te verplaatsen.   Venster-> Aanwijzer omlaag + =       ref nieuwe TypedEventHandler  (dit, & AppView :: OnPointerPressed); 

Voeg vervolgens deze definitie voor OnPointerPressed toe aan het einde van het bestand:

  void AppView :: OnPointerPressed (CoreWindow ^ afzender, PointerEventArgs ^ args)          // Geef de persoon de tijd om te communiceren met de holografische wereld door de muis te selecteren.       uiteraard als (m_main! = nullptr)                  m_main-> OnPointerPressed ();           

De nieuw toegevoegde gebeurtenisgebruiker is een correcte doorloop van de hoofdmodelgroepering. Laten we de ondersteuning wijzigen voor een hoofdklasse die deze gegevensoverdracht mogelijk maakt. Voeg dit openbaar beschikbare beslissingsnieuws toe aan uw bestandskop:

  // omgaan met muisinvoer.       ongeldige OnPointerPressed (); 
  // pc-invoer opnemen.       bool m_pointerPressed betekent false; 

Ten slotte updaten we de bekende universiteit met nieuwe logica om knaagdierklikken vast te houden. Voeg eerst deze functiebeheerder toe. Zorg ervoor dat u meestal de klassenaam bijwerkt:

  void MyHolographicAppMain :: OnPointerPressed ()          m_pointerPressed = Waar;    

Vervang nu, in de hele verbetermethode, het bestaande menselijke oordeel om de hit pose te krijgen met behulp van het volgende:

  SpatialInteractionSourceState ^ pointerState komt overeen met m_spatialInputHandler-> CheckForInput ();   SpatialPointerPose ^ pose is gewoon nullptr;   if (pointerState! is gelijk aan nullptr)          Pose komt overeen met pointerState-> TryGetPointerPose (currentCoordinateSystem);       al dan niet (m_pointerPressed)          induceren = SpatialPointerPose :: TryGetAtTimestamp (currentCoordinateSystem, Prediction-> Timestamp);      m_pointerPressed impliceert onwaar; 

Opnieuw compileren en opnieuw implementeren. Merk op dat muisbedieningen nu hun kubus verplaatsen met behulp van een meeslepende headset of het kan HoloLens zijn met een Bluetooth-muis aangesloten.

Ondersteuning voor gamecontrollers

Gamecontrollers kunnen een geweldige en zelfs handige manier zijn voor volwassen mannen en vrouwen om hun meeslepende Mixed Windows Reality-ervaring te besturen.

Voeg de volgende privépartnerverklaringen met betrekking tot uw hoofdbestand toe aan de headlines-klasse:

  // Herken dat gamepads normaal verbonden zijn na het instellen van de oefen-app.      void OnGamepadToegevoegd (Platform :: Object ^, Windows :: Games :: Input :: Gamepad ^ args); 
  // Stop met zoeken bedoeld voor gamepads die waarschijnlijk niet zijn aangesloten.       Vermijd OnGamepadRemoved (Platform :: Object ^, Windows :: Games :: Input :: Gamepad ^ args); 
  Windows :: Foundation :: EventRegistrationToken m_gamepadAddedEventToken;       Windows :: Foundation :: EventRegistrationToken m_gamepadRemovedEventToken; 
  // Bewaakt de gamepad en die de huidige status van zijn A-toets.       GamepadMetKnopStatus structuur           Windows :: Games :: Invoer :: Joystick ^ Joystick;           boolean buttonAWasPressedLastFrame = false;       ;       an std :: vector  m_gamepads; 

Initialiseer controllergebeurtenissen en alle op dit moment aangesloten gamepads in de constructor om je hoofdklasse te krijgen:

  // Indien aangesloten, kan ook een functionele recreatiecontroller worden gebruikt om invoer te vinden.   m_gamepadAddedEventToken impliceert Gamepad :: GamepadAdded + =       ref unieke EventHandler  (           bind (& RR safeprojectname $ Main :: OnGamepadAdded, _1, inspiration, _2)           ); 
  m_gamepadRemovedEventToken betekent Gamepad :: GamepadRemoved + =       ref nieuwe EventHandler  (           bind (& $ safeprojectname rrr Main :: OnGamepadRemoved, _1, this, _2)           ); 
  voor (auto const & gamepad: Gamepad :: Gamepads)          OnGamepadToegevoegd (nullptr, gamepad);    

Versnel uw computer in enkele minuten

Is uw computer traag en traag? Maakt u zich zorgen over het verlies van uw belangrijke bestanden en gegevens? Zoek dan niet verder dan Reimage - de ultieme oplossing voor het oplossen van al uw Windows-gerelateerde problemen. Deze krachtige software repareert veelvoorkomende fouten, beschermt uw systeem tegen rampen en optimaliseert uw pc voor maximale prestaties. Dus wacht niet langer - download Reimage vandaag nog en geniet van een soepele, snelle en zorgeloze computerervaring!

  • Stap 1: Download en installeer Reimage
  • Stap 2: Start het programma en selecteer uw taal
  • Stap 3: Volg de instructies op het scherm om het installatieproces te voltooien

  • Voeg deze time-handlers toe om je hoofdklasse te worden. Om de klassenaam bij te werken, moet u absoluut zeker weten:

      void MyHolographicAppMain :: OnGamepadAdded (Object ^, Gamepad ^ args)          from (auto constant en/of gamepadWithButtonState: m_gamepads)if (args == gamepadWithButtonState.gamepad)                         // Deze gamepad zou al op alle lijsten moeten staan.               kom boven terug naar;                         m_gamepads.push_back (argumenten, onwaar);    
    
      void MyHolographicAppMain :: OnGamepadRemoved (Object ^, Gamepad ^ args)          m_gamepads.erase (           std :: remove_if (m_gamepads.begin (), m_gamepads.end (), [&] (GamepadWithButtonState & gamepadWithState)                                  opbrengst gamepadWithState.gamepad == argumenten;               ),           m_gamepads.end ());    
    

    Ten slotte zijn de meeste invoerlogica's bijgewerkt om u te helpen wijzigingen in de status van de controller weer te geven. Hier implementeren we de extreem m_pointerPressed-variabele die verschillende keren is besproken in elk van onze vorige secties om pc-rampen toe te voegen. Voeg dit toe aan het Update-programma net voordat u de Check Spatial-aanwijzer opzoekt:

      // over een nieuwe invoerstatus van een goed vervolgframe.   vanwege (auto en gamepadWithButtonState: m_gamepads)          bool buttonDownThisUpdate ((gamepadWithButtonState = .gamepad-> GetCurrentReading (). Knoppen & GamepadButtons :: A) == GamepadButtons :: A);       zoals altijd (buttonDownThisUpdate &&! gamepadWithButtonState.buttonAWasPressedLastFrame)                  = m_pointerIngedrukt waar;              gamepadWithButtonState.buttonAWasPressedLastFrame = buttonDownThisUpdate;    
    
      // Voor context.   SpatialInteractionSourceState ^ pointerState betekent m_spatialInputHandler-> CheckForInput ();   SpatialPointerPose ^ pose = nullptr;   in vergelijking met if (pointerState! = nullptr)          ask = pointerState-> TryGetPointerPose (currentCoordinateSystem);      of als (m_pointerPressed)          create = SpatialPointerPose :: TryGetAtTimestamp (currentCoordinateSystem, Prediction-> Timestamp);      m_pointerPressed - onwaar; 
    

    Denk eraan om je te helpen bij het uitvinken van evenementen bij het opruimen van de dominante klasse:

      verstrekt (m_gamepadAddedEventToken.Value! = 0)          Gamepad :: GamepadAdded- = m_gamepadAddedEventToken;      if (m_gamepadRemovedEventToken.Value! betekent meestal 0)          Gamepad :: GamepadRemoved - betekent m_gamepadRemovedEventToken;    
    

    Opnieuw compileren en/waarschijnlijk opnieuw implementeren. Je kunt nu een set game-afstandsbedieningen bevestigen of misschien gebruiken en ze verplaatsen op de draaiende hoofdkubus.

    Zie ook

  • Hardware-accessoires
  • Artikel
  • 4 minuten om de aanvraag te lezen
  • UWP zal zeker onbehandelde XY-gegevens ontvangen voor veel muizen die onze MouseDevice API kopen.

    directx-muis

    Deze veilige en beveiligde software kan uw computer helpen beschermen tegen fouten, terwijl het ook eventuele problemen oplost.