Partager via


STRUCTURE TOUCHINPUT (winuser.h)

Encapsule les données pour l’entrée tactile.

Syntaxe

typedef struct tagTOUCHINPUT {
  LONG      x;
  LONG      y;
  HANDLE    hSource;
  DWORD     dwID;
  DWORD     dwFlags;
  DWORD     dwMask;
  DWORD     dwTime;
  ULONG_PTR dwExtraInfo;
  DWORD     cxContact;
  DWORD     cyContact;
} TOUCHINPUT, *PTOUCHINPUT;

Membres

x

Coordonnée x (point horizontal) de l’entrée tactile. Ce membre est indiqué en centièmes d’un pixel de coordonnées d’écran physiques.

y

Coordonnée y (point vertical) de l’entrée tactile. Ce membre est indiqué en centièmes d’un pixel de coordonnées d’écran physiques.

hSource

Handle d’appareil pour le périphérique d’entrée source. Chaque appareil reçoit un fournisseur unique au moment de l’exécution par le fournisseur d’entrée tactile. Consultez la section Exemples ci-dessous.

dwID

Identificateur de point tactile qui distingue une entrée tactile particulière. Cette valeur reste cohérente dans une séquence de contacts tactiles à partir du point où un contact descend jusqu’à ce qu’il revienne. Un ID peut être réutilisé ultérieurement pour les contacts suivants.

dwFlags

Ensemble d’indicateurs de bits qui spécifient différents aspects de la pression, de la libération et du mouvement du point tactile. Les bits de ce membre peuvent être n’importe quelle combinaison raisonnable des valeurs de la section Notes.

dwMask

Ensemble d’indicateurs de bits qui spécifient les champs facultatifs de la structure qui contiennent des valeurs valides. La disponibilité des informations valides dans les champs facultatifs est spécifique à l’appareil. Les applications doivent utiliser une valeur de champ facultative uniquement lorsque le bit correspondant est défini dans dwMask. Ce champ peut contenir une combinaison des indicateurs dwMask mentionnés dans la section Notes.

dwTime

Horodatage de l’événement, en millisecondes. L’application consommatrice doit noter que le système n’effectue aucune validation sur ce champ ; Lorsque l’indicateur TOUCHINPUTMASKF_TIMEFROMSYSTEM n’est pas défini, la précision et le séquencement des valeurs dans ce champ dépendent entièrement du fournisseur d’entrée tactile.

dwExtraInfo

Valeur supplémentaire associée à l’événement tactile.

cxContact

Largeur de la zone de contact tactile en centièmes de pixel en coordonnées d’écran physiques. Cette valeur n’est valide que si l’indicateur TOUCHEVENTFMASK_CONTACTAREA est défini pour le membre dwMask.

cyContact

Hauteur de la zone de contact tactile en centièmes de pixel en coordonnées d’écran physiques. Cette valeur n’est valide que si l’indicateur TOUCHEVENTFMASK_CONTACTAREA est défini pour le membre dwMask.

Remarques

Le tableau suivant répertorie les indicateurs du membre dwFlags .

Indicateur Valeur Description
TOUCHEVENTF_MOVE 0x0001 Des mouvements ont eu lieu. Ne peut pas être combiné avec TOUCHEVENTF_DOWN.
TOUCHEVENTF_DOWN 0x0002 Le point de contact correspondant a été établi par le biais d’un nouveau contact. Ne peut pas être combiné avec TOUCHEVENTF_MOVE ou TOUCHEVENTF_UP.
TOUCHEVENTF_UP 0x0004 Un point tactile a été supprimé.
TOUCHEVENTF_INRANGE 0x0008 Un point tactile est à portée. Cet indicateur est utilisé pour activer la prise en charge du pointage tactile sur le matériel compatible. Les applications qui ne souhaitent pas prendre en charge le pointage peuvent ignorer cet indicateur.
TOUCHEVENTF_PRIMARY 0x0010 Indique que cette structure TOUCHINPUT correspond à un point de contact principal. Pour plus d’informations sur les points tactiles principaux, consultez le texte suivant.
TOUCHEVENTF_NOCOALESCE 0x0020 Lorsqu’elle est reçue à l’aide de GetTouchInputInfo, cette entrée n’a pas été coalescée.
TOUCHEVENTF_PEN 0x0040 L’événement tactile a été déclenché par un appareil stylet.
TOUCHEVENTF_PALM 0x0080 L’événement tactile a été déclenché par la paume de l’utilisateur.
 
Note Si le matériel cible sur une machine ne prend pas en charge le pointage, lorsque l’indicateur TOUCHEVENTF_UP est défini, l’indicateur TOUCHEVENTF_INRANGE est effacé. Si le matériel cible sur une machine prend en charge le pointage, les indicateurs TOUCHEVENTF_UP et TOUCHEVENTF_INRANGE sont définis indépendamment.
 
Le tableau suivant répertorie les indicateurs du membre dwMask .
Indicateur Valeur Description
TOUCHINPUTMASKF_CONTACTAREA 0x0004 cxContact et cyContact sont valides. Pour plus d’informations sur les points tactiles principaux, consultez le texte suivant.
TOUCHINPUTMASKF_EXTRAINFO 0x0002 dwExtraInfo est valide.
TOUCHINPUTMASKF_TIMEFROMSYSTEM 0x0001 L’heure système a été définie dans la structure TOUCHINPUT .
 

Un point tactile est désigné comme principal lorsqu’il s’agit du premier point tactile à être établi à partir d’un état précédent sans point tactile. L’indicateur TOUCHEVENTF_PRIMARY continue d’être défini pour tous les événements suivants pour le point tactile principal jusqu’à ce que le point tactile principal soit libéré. Notez qu’un événement TOUCHEVENTF_UP sur le point tactile principal ne désigne pas nécessairement la fin d’une opération Windows Touch ; L’opération Windows Touch actuelle se poursuit de l’établissement du point tactile principal jusqu’à ce que le dernier point tactile soit libéré.

Notez qu’un point tactile solitaire ou, dans un ensemble de points tactiles simultanés, le premier à être détecté, est désigné comme principal. La position de la souris système suit le point tactile principal et, en plus des messages tactiles, génère également des messages WM_LBUTTONDOWN, WM_MOUSEMOVE et WM_LBUTTONUP en réponse aux actions sur un point tactile principal. Le point tactile principal peut également générer des messages WM_RBUTTONDOWN et WM_RBUTTONUP à l’aide du mouvement d’appui prolongé.

Notez que l’identificateur de point tactile peut être dynamique et est associé à un point tactile donné uniquement tant que le point tactile persiste. Si le contact est rompu puis repris (par exemple, si un doigt est retiré de la surface, puis appuyé à nouveau vers le bas), le même point tactile (le même doigt, le même stylet ou tout autre appareil de ce type) peut recevoir un identificateur de point tactile différent.

Le type suivant est défini pour représenter un pointeur constant vers une structure TOUCHINPUT .


   typedef TOUCHINPUT const * PCTOUCHINPUT;
    

Exemples

Note Dans l’exemple suivant, le tableau pInputs n’est pas trié. Utilisez la valeur dwID pour suivre des points tactiles spécifiques.
 
UINT cInputs = LOWORD(wParam);
PTOUCHINPUT pInputs = new TOUCHINPUT[cInputs];
if (NULL != pInputs)
{
    if (GetTouchInputInfo((HTOUCHINPUT)lParam,
                          cInputs,
                          pInputs,
                          sizeof(TOUCHINPUT)))
    {
        // process pInputs
        if (!CloseTouchInputHandle((HTOUCHINPUT)lParam))
        {
            // error handling
        }
    }
    else
    {
        // GetLastError() and error handling
    }
    delete [] pInputs;
}
else
{
    // error handling, presumably out of memory
}
return DefWindowProc(hWnd, message, wParam, lParam);

L’exemple suivant montre comment obtenir les informations de l’appareil à partir du membre hSource . Cet exemple utilise GetRawInputDevice pour récupérer des informations sur l’appareil.

for (UINT i = 0; i < cInputs; i++){
  TOUCHINPUT ti = pInputs[i];      
  RID_DEVICE_INFO info;
  ZeroMemory(&info, sizeof(RID_DEVICE_INFO));
  info.cbSize = sizeof(RID_DEVICE_INFO);
  UINT size = 0;
  if (GetRawInputDeviceInfo(ti.hSource, RIDI_DEVICEINFO, &info, &size)){
  }else{
    DWORD err = GetLastError();
  }
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête winuser.h (inclure Windows.h)

Voir aussi

GetTouchInputInfo

Structures