SetCursor_() wie bei Hyperlink? [endgültig gelöst]

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

SetCursor_() wie bei Hyperlink? [endgültig gelöst]

Beitrag von Scarabol »

Hi Leute,

wie kann ich den Cursor so ändern das er aussieht wie beim HyperlinkGadget?

Gruß
Scarabol
Zuletzt geändert von Scarabol am 29.09.2007 15:55, insgesamt 3-mal geändert.
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Ok danke, das war zu einfach... :oops:

Ich kannte bis dato nur die #OCR_...

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

Ich würde das wie folgt machen:

Code: Alles auswählen

SetClassLong_(WindowID(0),#GCL_HCURSOR,LoadCursor_(0, #IDC_HAND))
-.-"
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Hi,

gibt es irgendeinen Unterschied?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

ich dachte erst, da wird immer der cursor geladen, der wie eine hand
aussieht mit finger nach oben, aber ich hab den code mal probiert, und es
wird ja der vom user eingestellte cursor verwendet. :o (ich verwende einen anderen)
wofür steht dann das 'HAND' in #IDC_HAND ?
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Ist eine Windowsinterne Bezeichnung die, aber nur für den Cursor in den Einstellungen gilt, nicht für eine Datei oder so.

Währe aber trotzdem interssant zu wissen wie man die Hand erzwingt?

@Null
Welche Cursor taucht den bei dir auf wenn du über einem Hyperlink bist?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

mein normaler cursor ist 'wgtail.ani' :mrgreen:
und mein link-cursor ist '3dgarro.cur'
(eingestellt über maus-eigenschaften)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Ligatur
Beiträge: 196
Registriert: 09.07.2006 00:41

Beitrag von Ligatur »

Den Handcursor kannst du mit LoadCursorFromFile_() erzwingen.

Code: Alles auswählen

If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu) 
  SetClassLong_(WindowID(0), #GCL_HCURSOR, LoadCursorFromFile_("c:\windows\cursors\harrow.cur")) 
  Repeat 
    EventID = WaitWindowEvent() 
       
    
    If EventID = #PB_Event_CloseWindow 
      Quit = 1 
    EndIf 

  Until Quit = 1 
  
EndIf
Edit:

Mit folgenden Code geht auch der originale Handcursor:

Code: Alles auswählen

If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu) 
	mh = OpenLibrary(0, "c:\windows\winhlp32.exe")
	If mh
	  SetClassLong_(WindowID(0), #GCL_HCURSOR, LoadCursor_(mh, "#106")) 
	  Repeat 
	    EventID = WaitWindowEvent() 
	       
	    
	    If EventID = #PB_Event_CloseWindow 
	      Quit = 1 
	    EndIf 
	
	  Until Quit = 1 
	  
	  CloseLibrary(0)
	EndIf
EndIf
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Hi Leute,

zu Not könnte ich den Cursor ja mit in die Exe packen...

Gibt es nen Befehl CatchCursor_ oder so ?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Ligatur
Beiträge: 196
Registriert: 09.07.2006 00:41

Beitrag von Ligatur »

Scarabol hat geschrieben:Hi Leute,

zu Not könnte ich den Cursor ja mit in die Exe packen...

Gibt es nen Befehl CatchCursor_ oder so ?

Gruß
Scarabol
Du könntest den Cursor aus winhlp32.exe herauskopieren und dann als Resource mit einbinden. Dann kannst du mittels

Code: Alles auswählen

LoadCursor_(GetModuleHandle_(0), "ID")
den Cursor benutzen. Da Winhlp32.exe aber bei so gut wie jeden Windows - Rechner vorhanden sein sollte geht dies ebensogut mit meiner obigen Lösung, und die Frage von Copyrightverletzungen durch kopieren des Cursors muss nicht geklärt werden.
Einen Befehl, der den Cursor au einem Speicherbereich herausliest wird es nicht geben.
Antworten