CMouseInput

Klasse zur einfachen Abfrage des Mauszustandes. Abfrage von gepufferten Daten (siehe DirectX-SDK) ist zur Zeit noch nicht möglich.

Nach der Erzeugung kann mittels der Methode "refresh" ein Abbild des aktuellen Mauszustandes gespeichert werden. Anschliessend können über verschiedene Abfragemethoden die einzelnen Zustände (Tastendrücke, Bewegung) ausgelesen werden...

Zur Auswertung von DirectInput-Fehlern kann das Makro CFX_DICHECK aus DInputErrors verwendet werden.


Verfügbare Beispiele


Erforderliche Microsoft DirectX-Version


Erforderliche Microsoft DirectX-Libraries


Abhängigkeiten von weiteren CFXLib-Modulen

keine


Konstruktoren


protected Eigenschaften


public Methoden


protected Methoden

zum Anfang

Konstruktoren

CMouseInput()

Allgemeine Initialisierung des CMouseInput-Objekts.

zum Anfang
protected Eigenschaften

LPDIRECTINPUT8 m_lpDirectInputObj
Eigentliches DirectInput-Objekt.
zum Anfang
LPDIRECTINPUTDEVICE8 m_lpDirectInputDevice
Intern verwendetes DirectInput-Device-Objekt für den Zugriff auf die Maus.
zum Anfang
DIMOUSESTATE2 m_MouseState

Datenpuffer zur Aufnahme des aktuellen Mauszustandes.

Wird mit der Methode "refresh" aktualisiert und über verschiedene Abfragemethoden ausgelesen.

zum Anfang
public Methoden

bool create(HWND hWindow, HINSTANCE hInstance)

Erzeugung des eigentlichen DirectInput-Objekts, sowie des DirectInput-Device-Objekts.

Rückgabe:

  • true, wenn erfolgreich
  • false, wenn Fehler

Parameter:

  • HWND hWindow
    Zugehöriges Fensterhandle, d.h. Handle des Fensters, welches mit dem DirectInput-Device-Objekt verbunden werden soll.
  • HINSTANCE hInstance
    Instanzenhandle der Anwendung.
zum Anfang
HRESULT refresh()

Aktuellen Mauszustand in "m_MouseState" einlesen.

Über "isButtonPressed" können dann die Zustände der Maustasten zum Zeitpunkt des letzten Aufrufes von "refresh" abgefragt werden. Für die Abfrage der Mausposition, sowie ggf. des Mausrädchens stehen weitere Methoden zu Verfügung...

Rückgabe:

  • DI_OK, wenn erfolgreich
  • sonst Fehlercode (Auswertung über das Makro CFX_DICHECK möglich!)
zum Anfang
bool isButtonPressed(int nButtonID)

Abfrage, ob die durch nButtonID spezifizierte Maustaste, beim letzten Aufruf von "refresh" gedrückt war.

Rückgabe:

  • true, wenn die Taste gedrückt war
  • false, wenn die Taste nicht gedrückt war

Parameter:

  • int nButtonID
    Die möglichen ID-Konstanten sind nachfolgend aufgeführt
    :
    const int CFX_MOUSE_BTN_LEFT = 0
    const int CFX_MOUSE_BTN_RIGHT = 1
    const int CFX_MOUSE_BTN_MIDDLE = 2
    const int CFX_MOUSE_BTN_4 = 3
    const int CFX_MOUSE_BTN_5 = 4
    const int CFX_MOUSE_BTN_6 = 5
    const int CFX_MOUSE_BTN_7 = 6
    const int CFX_MOUSE_BTN_8 = 7

Die zur Zeit unterstützte Anzahl der Maustasten entspicht der Konstante CFX_MOUSE_BUTTONS (=8).

zum Anfang
long getX_Axis()

Abfrage der Mausbewegung in x-Richtung zum Zeitpunkt des letzten "refresh"-Aufrufs.

Rückgabe:

  • relative Bewegung zur letzten x-Position.
zum Anfang
long getY_Axis()

Abfrage der Mausbewegung in y-Richtung zum Zeitpunkt des letzten "refresh"-Aufrufs.

Rückgabe:

  • relative Bewegung zur letzten y-Position.
zum Anfang
long getZ_Axis()

Abfrage der Bewegung des Mausrädchens zum Zeitpunkt des letzten "refresh"-Aufrufs.

Rückgabe:

  • relative Bewegung zur letzten Position des Mausrädchens.
zum Anfang
protected Methoden

virtual bool onCreate()

Diese Methode kann in einer abgeleiteten Klasse implementiert werden und könnte dort die Initialisierung der Basisklasse erweitern. Wird automatisch von "create" aufgerufen.

Rückgabe:

  • Die Basisimplementierung liefert immer true zurück
zum Anfang