Arkitekturöversikt
Den här arkitekturöversikten ger kontext för Windows Touch API för Tablet- och Touch-tekniker och förklarar hur det passar in i den större Windows 7-arkitekturen.
Meddelanden för Windows-beröringsinmatning och gester
Meddelandefunktioner för Windows Touch aktiveras genom att lyssna och tolka meddelanden under körningen. Följande bild visar hur meddelanden genereras från maskinvara och skickas till program av Windows 7.
I den vänstra kolumnen i bilden tar pekkänslig maskinvara emot indata från en användare. En drivrutin kommunicerar sedan mellan maskinvaran och operativsystemet. Operativsystemet genererar sedan ett WM_TOUCH- eller WM_GESTURE-meddelande som sedan skickas till en applikations HWND. Programmet uppdaterar sedan användargränssnittet med den information som är inkapslad i meddelandet.
Program tar emot gester som standard. Om inte ett program registreras för Windows Touch-indatameddelanden med funktionen RegisterTouchWindow skapas meddelanden för gester (WM_GESTURE meddelanden) av Windows och skickas till programfönstret. Om ett programfönster registreras för att ta emot pekmeddelanden skickas meddelanden för Windows Touch-indata (WM_TOUCH meddelanden) till programfönstret. Windows Touch- och gestmeddelanden är giriga i den meningen att när en touch har gjorts eller en gest börjar i ett programfönster, skickas alla meddelanden till programmet tills gesten har slutförts eller den primära touchen har slutförts.
För äldre stöd tolkar Windows WM_GESTURE meddelanden om de bubblas upp och skickar eller postar sedan lämpliga meddelanden som mappar till gesten. Undvik att bryta äldre stöd genom att se till att du vidarebefordrar WM_GESTURE meddelanden med hjälp av DefWindowProc. Mer information om äldre stöd finns i avsnittet Översikt över Windows Touch Gester.
Manipulationer och tröghet
Windows Touch-programmerare måste kunna tolka gester från flera källor på ett sätt som är meningsfullt för gesten som äger rum. Microsoft tillhandahåller api:et för manipulation för att utföra dessa beräkningar. Manipuleringar är i huvudsak gester med värden kopplade till dem som beskriver hela gesten. När du har anslutit indata till manipulationsprocessorn kan du hämta information som är relevant för åtgärder som användaren gör på objektet. Följande bild visar ett sätt att använda manipuleringar.
Längst upp till vänster i bilden har användaren rört skärmen, vilket skapar pekmeddelanden. Dessa meddelanden innehåller en x-koordinat och en y-koordinat som används för att fastställa det objekt som är i fokus. Objektet i fokus innehåller en manipuleringsprocessor. På meddelandet WM_TOUCH som har flaggan TOUCHEVENTF_UP, väljs objektet i användarens fokus, manipulationsprocessorn refereras och meddelandet skickas till manipulationsprocessorn. Efterföljande WM_TOUCH meddelanden som är associerade med den här kontakten skickas till manipulationsprocessorn tills WM_TOUCH-meddelandet med flaggan TOUCHEVENTF_UP tas emot och det valda objektet avrefereras. I det nedre högra avsnittet av illustrationen används en händelsehanterare som implementerar _IManipulationEvents-gränssnittet för att hantera manipulationshändelserna, som genereras medan beröringsmeddelanden skapas. Händelsemottagaren kan utföra uppdateringar av gränssnittet baserat på manipulationshändelserna när de inträffar.
I Windows Touch-program är det vanligt att införliva enkel fysik så att objekt smidigt stoppas, i stället för att plötsligt stoppas när de inte längre berörs. Microsoft tillhandahåller Tröghets-API:et för att utföra beräkningarna för den här enkla fysiken så att ditt program kan bete sig på ett sätt som liknar andra program. Detta sparar också den ansträngning som krävs för att skapa robusta fysikfunktioner. Följande bild visar hur du kan använda tröghet.
Observera likheterna mellan tröghet och manipulering. Den enda skillnaden mellan de två är att vid tröghet överlämnas tolkade meddelanden till en tröghetsprocessor snarare än en manipuleringsprocessor och tröghetsprocessorn genererar händelserna. Längst upp till vänster i bilden, i det WM_TOUCH meddelandet med flaggan TOUCHEVENTF_UP, används pekmeddelanden för att identifiera ett objekt i fokus som innehåller en tröghetsprocessor och en manipuleringsprocessor. Efterföljande WM_TOUCH meddelanden skickas till manipulationsprocessorn och manipulationsprocessorn utför uppdateringar av programmets användargränssnitt. När manipuleringen har slutförts används hastighetsvärden från manipulationen för att konfigurera en tröghetsprocessor. Som du ser i den mellersta kolumnen anropas metoden Process eller ProcessTime på IInertiaProcessor-gränssnittet med hjälp av en timer eller annan loop i en separat tråd tills anropen anger att processorn har slutfört bearbetningen. Dessa anrop görs, men manipuleringshändelser aktiveras, som hanteras av en manipulationshändelsemottagare baserat på _IManipulationEvents-gränssnittet. Längst ned till höger i bilden utför den här händelsemottagaren sedan uppdateringar av programmets användargränssnitt baserat på manipulationshändelser när de inträffar via händelsehanterare i händelsemottagaren.
Relaterade ämnen