J'ai l'habitude de travailler avec un framework Windows qui fournit des événements pour des choses comme un clic de souris ou un double-clic de souris. Les événements click sont-ils une construction Windows (c'est-à-dire Windows envoie-t-il un message WM_DOUBLECLICK ou un message similaire) ou WM_MOUSEDOWN et WM_MOUSEUP sont-ils envoyés aux applications qui calculent ensuite si l'événement était un clic ou non?Est-ce qu'une souris clique sur un message WM_ * ou une combinaison de messages haut et bas?
Répondre
Selon MSDN documentation L'ordre des messages que vous verrez pour l'événement double clic sont - WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK et WM_LBUTTONUP
Merci, cela ressemble à la bonne séquence. –
Il s'agit d'une combinaison de messages envoyés via WindowProc(). Les messages sont WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, WM_LBUTTONUP pour le bouton gauche de la souris, WM_MBUTTONDOWN et ainsi de suite pour le bouton du milieu, et WM_RBUTTONDOWN et ainsi de suite pour le bouton droit de la souris. Voir le SDK Windows au MSDN pour plus d'informations.
Un clic de souris n'est pas une combinaison de messages de fenêtres, mais il peut conduire à, en fonction de l'application sur laquelle vous avez cliqué. Il y a une énorme différence entre l'entrée des fenêtres et des messages fenêtres, car ils ne sont qu'un outil pour certaines applications, utilisées de différentes façons, comme expliqué sur MSDN:
J'ai également fourni un exemple qui montre clairement la différence dans ma question How could it work to use multiple cursors on one Windows client? Il montre quels messages sont envoyés en cliquant et que les messages Windows sont souvent insuffisants pour émuler un clic de souris, mais s'ils le sont, comment ils peuvent être utilisés.
chercher CS_DBLCLKS – AbstractDissonance