2010-12-29 13 views
1

Ich möchte ein Konsolenprogramm für Mausereignisse schreiben (nur Maus scrollen). Wie mache ich das in VC++? Die Anwendung wird nur auf Scroll-Ereignisse hören.VC++ Maus Ereignisse

Beschreibung: Wenn der Benutzer nach unten scrollt, wird das Desktop-Fenster ausgeblendet und eingeblendet, wenn der Benutzer nach oben scrollt.

Hier muss ich nur wissen, um Mausereignisse in der Konsolen-App zu hören.

Hinweis: Ich entwickle mit Win32-API, und für die Entwicklungsumgebung verwende ich VS2010.

Antwort

1

Ich habe das eigentlich nie selbst gemacht. Es scheint, dass eine Konsolenanwendung, die auf Mausereignisse reagiert, ihre Natur und ihren beabsichtigten Zweck fast täuscht. Im Allgemeinen müssten Sie nur auf die Tastatureingabe von einer Konsolen-App reagieren und die Maus in einer GUI-App belassen.

Das besagt, this tutorial zeigt an, dass es in der Tat möglich ist, diese Mausereignisse aus einer Win32-Konsolenanwendung zu erfassen. Im Allgemeinen ist der Vorschlag, die ReadConsoleInput function zu verwenden und die Information von Interesse von der INPUT_RECORD Struktur zu extrahieren, die es füllt. Die einzige knifflige Sache ist, dass der Anruf an ReadConsoleInput ein Blockieren Aufruf ist, was bedeutet, dass es nicht zurückgeben wird, bis ein Eingabeereignis ausgelöst wird. Sie müssen den Code Ihrer Anwendung entsprechend strukturieren. Mausereignisse werden im Detail auf 3/4 des Weges auf der Seite behandelt.

+0

@Cody: Das ist genau das, was ich gesucht habe. Vielen Dank. Ich mochte deine Erklärung in 1. Absatz. –

+0

@Ashwin: Froh, dass das für dich funktioniert. Das erste, was mir in den Sinn kam, war ein globaler Haken, der wahrscheinlich nicht die beste Lösung ist, also habe ich auch etwas Neues gelernt! –

+0

@Cody: Ich habe etwas mit globalen Hooks gespielt und es ist abgestürzt und ich konnte es nicht so funktionieren wie ich es brauchte. Das funktioniert gut. und es hält mein Design einfach. –

Verwandte Themen