Seite 1 von 3

Cursor auf Fullscreen zeichnen

Verfasst: 10.03.2008 19:13
von Tombi
Habe es schon in vielen Threads gesehen und gelesen,
bekomme es aber nicht mit meiner cursor.cur hin:

Code: Alles auswählen

InitSprite()
InitKeyboard()
InitMouse()

OpenScreen(640,480,32,"test")

ExamineKeyboard()
LoadImage(1,"cursor.cur")


Repeat

ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
DrawImage(1, MouseX(),MouseY())
StopDrawing()
FlipBuffers()

Until KeyboardPushed(#PB_Key_Escape)
Woran kann das nur liegen?
Nimmt PureBasic keine .cur Dateien?

Verfasst: 10.03.2008 19:16
von #NULL
ImageId(1) statt 1
das mit der *.cur datei, keine ahnung, ich denke mal nicht.
das kannst du aber auch herausfinden durch den rückgabewert von loadimage()

Verfasst: 10.03.2008 19:26
von Tombi
#NULL hat geschrieben:das kannst du aber auch herausfinden durch den rückgabewert von loadimage()
Bis jetzt ist es positiv (1) ausgefallen, hoffe das bleibt auch so :mrgreen:

Verfasst: 10.03.2008 19:28
von Tombi
Ach mist, wieder nichts:
ImageID hat in Version 3.30 keine Parameter.
Und Ohne keine Änderung.

Ich weiß, ich kann auch die Demo nehmen, aber ich kann mich irgendwie mit 3.30 besser abfinden...

Verfasst: 10.03.2008 19:38
von Mok
Nimm doch Edit, anstatt 2x zu posten

Ich konnte einmal CUR-Dateien öffnen, aber das ist schon länger her, und ich weiß nich, ob ich dazu ein externes Programm/eine Userlib benutzte, und ich kann es jetz auf die Schnelle auch nicht ausprobieren.

Verfasst: 10.03.2008 19:44
von Tombi
Ich habe es jetzt mal mit einer bmp-Datei versucht, liegt wohl doch an der .cur-Datei :cry: (obwohl 1 zurückgegeben wird?!).

Verfasst: 10.03.2008 19:48
von Fluid Byte
Das .CUR Format wird überhaupt nicht unterstüzt ...

Verfasst: 10.03.2008 19:57
von Tombi
Dachte ich mir ^^

Mh, jetzt funktioniert der Code oben trotzdem nicht ganz:

* Mausbewegungen werden "ignoriert"
* ESC schließt NICHT das Programm.

Verfasst: 10.03.2008 19:59
von Fluid Byte
Falls Crossplatform-Kompatiblität keine Rolle spielt ginge es mit der API Variante von LoadImage():

Code: Alles auswählen

InitSprite() : InitKeyboard() : InitMouse()

OpenWindow(0,0,0,640,480,"void",#WS_OVERLAPPEDWINDOW | 1)
OpenWindowedScreen(WindowID(0),0,0,640,480,0,0,0)

hbmCursor = LoadImage_(0,"C:\WINDOWS\Cursors\arrow_m.cur",#IMAGE_CURSOR,0,0,#LR_LOADFROMFILE)

Repeat
	EventID = WindowEvent()
	
	ClearScreen(50,100,150)
	
	ExamineKeyboard()
	ExamineMouse()
	
	StartDrawing(ScreenOutput())
	DrawImage(hbmCursor,MouseX(),MouseY())
	StopDrawing()
	
	FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or EventID = #WM_CLOSE

Verfasst: 10.03.2008 20:09
von Tombi
Er beschwert sich bei dem DrawImage, das irgendwas (glaub #Image oder so) NULL wäre (erster Wert in DrawImage())