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

1

14.10.2008, 17:04

Mauszeiger anzeigen

Hallo,
ich versuche einen eigenen Mauszeiger anzuzeigen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
// Initialisieren:

if (dev->CreateOffscreenPlainSurface(32, 32, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &m_pSurface, NULL) != D3D_OK) return false;
if (D3DXLoadSurfaceFromFile(m_pSurface, NULL, NULL, m_pszFile, NULL, D3DX_FILTER_NONE, 0, NULL) != D3D_OK) return false;
if (dev->SetCursorProperties(m_xHotSpot, m_yHotSpot, m_pSurface) != D3D_OK) return false;

dev->ShowCursor(true);

// Beim Rendern:

dev->SetCursorPosition(200, 200, D3DCURSOR_IMMEDIATE_UPDATE);


Einige Infos: Auflösung: 1920x1200 fullscreen, DirectInput mit DISCL_FOREGROUND | DISCL_EXCLUSIVE für Maus

Leider wird mir absolut nichts angezeigt. Die Surface ist sicher da, denn ich kann sie nach dem Initialisieren mit D3DXSaveSurfaceToFile in eine Datei speichern.

MfG,
Max

Anonymous

unregistriert

2

14.10.2008, 17:08

Was sagt denn der Result-Wert?

3

14.10.2008, 17:19

Die Funktionen geben alle D3D_OK zurück ...

4

14.10.2008, 18:34

Wenn ich DISCL_NONEXCLUSIVE angebe, wird der Cursor angezeigt.
Aber kann man einen Cursor auch mit DISCL_EXCLUSIVE benutzen, oder ist das grundsätzlich nicht möglich?

Welche Vor- bzw. Nachteile haben eigentlich DISCL_EXCLUSIVE / DISCL_NONEXCLUSIVE für die Maus?
In der Doku von MS steht dazu nichts genaueres.. Kann es sein, dass DISCL_EXCLUSIVE die einzige Auswirkung hat, dass absolut kein Mauszeiger angezeigt wird??

5

14.10.2008, 18:43

DISCL_EXCLUSIVE besagt, dass ausschließlich dein Programm Zugriff auf die Maus hat. Also selbst Windows hat kein Zugriff mehr und ist somit nicht in der Lage etwas anzuzeigen oder Events abzufragen.
Entweder du verwendest DISCL_NONEXCLUSIVE oder du musst dir eigene Routinen schreiben und einen eigenen Mouscursor verwenden.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

6

14.10.2008, 20:15

ich würde dir raten, selbst dir das zu schreiben, das ist a flexibler und b weniger d3dx^^

Werbeanzeige