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

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

1

10.02.2008, 14:32

WindowsLautstärke

Hallo,
ich hatte ursprünglich schon im Support für die Tribase Engine mit einem ursprünglich anderen Problem gepostet, dass hatte sich dann aber so verändert, dass es nicht mehr in dieses Forum gehörte:

Wenn ich beim erstellen von tbDirectInput das Flag "DISCL_EXCLUSIVE" angebe habe ich das Problem, dass wenn ich auf meiner Tastatur z.B. die Mute-Taste drücke, Windows darauf nicht reagiert.

Gebe ich stattdessen das Flag "DISCL_NONEXCLUSIVE" an funktioniert es, aber jetzt habe ich das Problem, dass wenn ich mich mit dem GUI-Mauszeiger auf den linken oberen Rand zubewege der normale Windowscursor auch wieder erscheint und wenn ich dann noch klicke das Spiel sogar minimiert wird.

Gibts eine Möglichkeit dieses zu verhindern, bzw. die Lautstärke von Windows zu beeinflussen, ohne Nebenwirkungen?
Viele Grüße
Andreas

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

2

10.02.2008, 14:56

Ja. Du darfst nur beim erstellen der Schnittstelle für den Cursor das Flag DISCL_EXCLUSIVE angeben. Dann kannst du die Lautstärke regeln und du siehst den Windows-Cursor nicht.
Signaturen werden überbewertet

3

10.02.2008, 14:57

Ich glaube, das eine hat mit dem andern nichts zu tun. Das Fensterproblem liegt wohl eher am Stil (WS_...), den du beim Registrieren/Erstellen angegeben hast.

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

4

10.02.2008, 15:07

Wenn ich aber DISCL_EXCLUSIVE angebe ist, das Problem bei mir noch nicht aufgetreten

5

10.02.2008, 15:28

Hmmh, seeehrrr interessant! :)
Ich hatte mal genau das Fensterproblem und da waren es definitiv die Styles (und ggf. die Fenstergröße).
Möglicherweise hilft dir das Flag DISCL_NOWINKEY in Verbindung mit DISCL_NONEXCLUSIVE?

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

6

10.02.2008, 16:17

Hat leide nichts gebracht, in dem Buch von David Scherfgen steht auch, dass dieses Flag nur mit DISCL_FOREGROUND | DISCL_EXCLUSIVE verwendet werden kann und dafür da ist, dass man nicht versehentlich durch drücken der Windowstaste das Spiel minimiert.

Wenn du bei dir anstatt von DISCL_EXCLUSIVE mal DISCL_NONEXCLUSIVE angibst, dann im Vollbildmodus startest und mehrfach versuchst dich der linken oberen Ecke zu nähern (passiert nicht immer sofort), kommt das dann bei dir nicht?

7

10.02.2008, 16:47

Nö, passiert nicht. Fensterstil in der Anwendung, die ich grad getestet habe ist WS_OVERLAPPEDWINDOW. Größe beim Init des DX-Device ist aktuelle (Desktop-) Größe.

Zitat von »"DX-Doku"«

For the keyboard, you can also include DISCL_NOWINKEY in combination with DISCL_NONEXCLUSIVE. This flag disables the Windows logo key so that users cannot inadvertently break out of the application. In exclusive mode, the Windows logo key is always disabled.

Entweder du hast falsch zitiert, oder David hat Murks gebaut.

(DISCL_NOWINKEY legt bei mir auch andere Tasten lahm. Daher meine vorherige Idee.)

Ansonsten hilft nur ein Keyboard-Hook, aber den würde ich dir nicht unbedingt empfehlen.

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

8

10.02.2008, 17:11

HI,
bei mir steht Auflage 2 Seite 383

"DISCL_NOWINKEY: Ist dieses Flag angegeben, dann wird die Windows-Taste auf der Tastatur deaktiviert. So kann man sichergehen, dass der Benutzer sie nicht aus Versehen drückt und das Spiel unterbricht. Funktioniert nur mit DISCL_EXCLUSIVE | DISCL_FOREGROUND."

Ich versuch mal ein kleines Programm zu schreiben, bei dem der fehler auftritt und dann kann ich das mal hochladen, ok?

9

10.02.2008, 17:13

Jou, beam mal was hoch Scotty :)

EDIT:
Ja, hast recht! Ist ein Fehler von David...
Hab grad nachgeschaut.

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

10

10.02.2008, 17:34

Ich hab jetzt eine kleinere Version, bei dem das bei mir auch passiert:

http://www.mehringskoetter.de/files/Neuer_Ordner_(3).zip

Leider funktioniert der GUI-Zeiger aus mir noch ungeklärten Gründen noch nicht. Allerdings kann man ja einfach auch so tun als würde man den Cursor nach oben links bewegen und dabei ist es bei mir auch schon passiert. Leider kann man davon keinen Screenshot machen, der Cursor ist darauf nie sichbar.

Quelltest ist hier:

http://www.mehringskoetter.de/files/Modelle(2).cpp

Werbeanzeige