SetSystemCursor_() - Hilfe [ ]

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

SetSystemCursor_() - Hilfe [ ]

Beitrag von RSBasic »

Hallo,
ich habe ein Problem.
Ich möchte gerne den Mauscursor mit PB ändern.
Da gibt es solche Befehle wie:

Code: Alles auswählen

LoadCursor_()
SetSystemCursor_()
LoadCursorFromFile_()
CopyIcon_()
Da ich keinen Plan habe, wie man das realisieren soll, frage ich euch.
Könnt ihr ein Beispielfenster mit der Änderung eines Mauscursors schreiben?
Danke im Vorraus
Zuletzt geändert von RSBasic am 26.04.2009 19:36, insgesamt 2-mal geändert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)

SetClassLong_(WindowID(0),#GCL_HCURSOR,LoadCursor_(0,#IDC_CROSS))

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Code: Alles auswählen

hCur = LoadCursor_(0, #IDC_ARROW) ;Cursor laden, hCur ist Cursorhandle
SetCursor_(hCur) ;Cursor neu setzen
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@hardfalcon
So weit war ich auch...

@Fluid Byte & @milan1612
Sry ich vergaß. :oops:
Ich meine ein Beispiel-Code für ein eigenes Mauscursor.
Also ich habe ein eigenes Mauscursor gezeichnet und ist natürlich im Cur-Format.
Wie ich diese Cur-Datei laden und einsetzen kann, hab ich leider keinen Plan.
Kann einer mir helfen mit einem Beispielcode? :oops:
Danke im Vorraus :)
Zuletzt geändert von RSBasic am 26.04.2009 19:36, insgesamt 1-mal geändert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

lpBuffer = AllocateMemory(766) : UnpackMemory(?cursor,lpBuffer)

TempDir$ = GetTemporaryDirectory()

CreateFile(0,TempDir$ + "busy.cur")
WriteData(0,lpBuffer,766)
CloseFile(0)

OpenWindow(0,0,0,400,300,"void",$CC0001)

hCurBusy = LoadCursorFromFile_(TempDir$ + "busy.cur")

SetClassLong_(WindowID(0),#GCL_HCURSOR,hCurBusy)

While WaitWindowEvent() ! 16 : Wend

DataSection
	cursor:
	Data.l $02FE434A,$571E0000,$23025EF4,$23202091,$11002301,$01A12404,$061109F4,$441318B0,$00449420,$844048D0
	Data.l $02221E20,$000F1B01,$4C0E8FD8,$12F00102,$08410050,$01E00010,$81C02BFE,$E0162049,$2CC00A04,$50F6230F
	Data.l $8C203826,$C9F057C3,$C310B8C5,$05FF61B0,$010D3305,$1300F0F6,$20CC3082,$831B730C,$F92A4230,$501F0871
	Data.l $0D354598,$4B04D9E9,$1FC01E33,$4DA231D6,$76B88726,$987F1E08,$927D7821,$41418108,$0183FF4F,$4380289A
	Data.l $887857CC,$8798FC49,$1C611F98,$70BA7C62,$3082F188,$878A8A0B,$2980BCA3,$E1B7482A,$5811AB29,$11F4E011
	Data.l $213F4FE2,$F95C54FF,$F0200ADB,$206300D6,$60472878,$1C826B07,$43490148,$19B1482C,$48959315,$000042A4
	Data.b $00,$00
EndDataSection
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Fluid Byte
Vielen Dank :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Hi,
ich habe wieder ein Problem.

Code: Alles auswählen

Auswahlcursor = LoadCursorFromFile_("Auswahl.cur")

If OpenWindow(0,0,0,500,500,"Beispiel",0)
  If CreateGadgetList(WindowID(0))
    ButtonGadget(1,10,10,100,20,"Beenden",0)
  EndIf
  
  Auswahlcursorbackup = CopyIcon_(GetCursor_())
  SetSystemCursor_(Auswahlcursor,#OCR_NORMAL)
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
  Select EventGadget()
    Case 1
      SetSystemCursor_(Auswahlcursorbackup,#OCR_NORMAL)
      End
  EndSelect
EndIf
If EventID = #PB_Event_CloseWindow
  Quit=1
EndIf
Until Quit=1
EndIf
Das Problem liegt beim Zurücksetzen des Mauscursor's, das mit CopyIcon_(GetCursor_()) gesichert wurde.
Was mache ich hier falsch?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Was willst du überhaupt machen? Der code bewirkt doch keinerlei Änderung des Cursors. Ich meine du lädst den momentanen Cursor und setzt ihn wieder bei beenden.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Fluid Byte
>Was willst du überhaupt machen?
Ich möchte folgendes machen:
-Cursor laden [Auswahlcursor = LoadCursorFromFile_("Auswahl.cur")]
-Cursor sichern [Auswahlcursorbackup = CopyIcon_(GetCursor_())]
-Cursor setzen [SetSystemCursor_(Auswahlcursor,#OCR_NORMAL)]
-Cursor wiederherstellen [SetSystemCursor_(Auswahlcursorbackup,#OCR_NORMAL)] *Fehler*
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten