Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

1

23.01.2014, 15:10

Probleme mit Maus während programmlauf.

Liebe Leser

Wenn ich mein Programm im Fendetermodus laufen lasse, dann ist die Windows Maus ja immer noch da, was zu negativen Eigenschaften führt. Wenn ich in meine Anwendung die Maus bewege und die Windows Maus dann nicht mehr in meinem fenster ist und dann einen klick machen, dann Wechsel ich dass Programm.

Nicht Schlimm. oder? Ausweg -> Vollbildmodus.

Jedoch ist im Vollbildmodus die Maus immer noch aktiv und klickt im Hintergrund, wenn ich das Projekt teste irgendwelche Sachen an. Wenn die Maus den oberen Rechten Bildschirmrand berührt und dann ein klick erfolgt, Fliege ich aus meine Programm zum Desktop oder woanders hin.

Ich benötige eine möglichkleit die Maus während der Anwendung zu deaktivieren.

Pseudo Code

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
// TriBase- Nachichtrenschleife

if(b_WindowActive)
{

SetMouse(NONE);


}

2

23.01.2014, 15:44

Geht es um ein DirectX-Fenster und Mauseingaben via DirectInput?
fka tm

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

3

23.01.2014, 15:46

Es geht um die Windows Maus.


Ich habe es aber eben Gelöst. Ich habe die Tribase-Narichtenschleifen verbessert

C-/C++-Quelltext

1
2
3
4
5
6
7
8
if(b_appActive)
{
//...

ShowCursor(false);

SetCursorPos(512, 512);
}

4

23.01.2014, 15:47

eher verschlimmbessert...
fka tm

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

5

23.01.2014, 16:08

Das Problem löst man in der WINAPI dadurch, dass man den aktuellen Cursor auf NULL setzt:

C-/C++-Quelltext

1
SetCursor(NULL);


Ich bin mir nicht mehr sicher, ob der Zustand beim beenden wiederhergestellt wird, daher hier der Weg, wie man den Mousecursor wieder aktiviert:

C-/C++-Quelltext

1
SetCursor(LoadCursor(NULL, IDC_ARROW));


Idealerweise implementierst du für diese beiden Schnipsel ein SetCursorVisible(bool isVisible) und rufst die Funktion einfach auf.

Werbeanzeige