Gibts eine Funktion, um ein Bild als Mouse Cursor in einer GUI zu benutzen??
Mouse Icon
-
- [ offen ]
-
Bakku -
31. März 2010 um 00:00 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
_WinAPI_SetCursor() sollte dich zum Ziel bringen. Mit _WinAPI_LoadImage() kannst du das Bild für den Cursor laden.
-
Ok. Danke. Dann schau ich mir das mal an.
-
Ich habe es mal versucht, ich bekomme es aber nicht hin.
Hier ist der Code. Was ist daran falsch. Ich will, dass der Maus Cursor dieses Bild ist.Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>Opt('MustDeclareVars')
[/autoit] [autoit][/autoit] [autoit]Global $hGUI, $hCursor
[/autoit] [autoit][/autoit] [autoit]
Global $nMsg$hGUI = GUICreate("Mouse Cursor")
[/autoit] [autoit][/autoit] [autoit]
$hCursor = _WinAPI_LoadImage(0, @ScriptDir & "\Example.jpg", $IMAGE_CURSOR, 20, 20, $LR_DEFAULTCOLOR)
_WinAPI_SetCursor($hCursor)
GUISetState(@SW_SHOW)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd -
aus der hilfe zu winapiloadimage:
"Lädt ein Icon, Cursor oder Bitmap"
kurz gesagt. Jpg's funktionieren nicht^^
-
Achso.
Wie ist denn das Format von Cursor??
Halt das Format womit man einen MouseCursor machen kann?? -
nimm doch bmp oder ico.
natürlich kannste auch curser dateien erstellen.
2 sec google ergab das:
http://www.aha-soft.com/artcursors/
http://www.iconcool.com/ -
Zitat
aus der hilfe zu winapiloadimage:
"Lädt ein Icon, Cursor oder Bitmap"
icon hat .ico
cursor hat .cur
bitmap hat .bmp
(Es gibt HIER einige Tools mit denen du aus Bildern (PNG, JPG etc.) icons machen kannst! -
Ok habe das Bild konvertiert, eingebunden, etc.
Funktioniert aber immer noch nicht.
Hier der Code:Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Global $hGUI, $hCursor
[/autoit] [autoit][/autoit] [autoit]
Global $nMsg$hGUI = GUICreate("Mouse Cursor")
[/autoit] [autoit][/autoit] [autoit]
$hCursor = _WinAPI_LoadImage(0, @ScriptDir & "\Example.ico", $IMAGE_CURSOR, 20, 20, $LR_DEFAULTCOLOR)
_WinAPI_SetCursor($hCursor)
GUISetState(@SW_SHOW)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd -
häng doch bitte das bild mit an.
-
_WinAPI_LoadImage wird auch mit falschen Parametern aufgerufen (s. Hilfe!).
[autoit]_WinAPI_LoadImage(0, @ScriptDir & "\Example.ico", $IMAGE_ICON, 20, 20, $LR_DEFAULTCOLOR)
[/autoit] -
Kannst du mir die Parameter erklären.
Ich finde die UDF-Hilfe sehr kompliziert und nicht so leicht verständlich -
Irgendwie geht so gar nicht.
Warten wir mal auf Bugfix -
- Offizieller Beitrag
Um mit _WinAPI_LoadImage arbeiten zu können muß erst mal das Handle der zu ladenden Datei ermittelt werden. $Handle = _WinAPI_LoadLibrary($sFileName).
Dieser muß als 1. Parameter von _WinAPI_LoadImage angegeben werden.2. Möglichkeit: Als erster Parameter von _WinAPI_LoadImage 0 setzen 2. Parameter muß der Filename sein und im 6. Parameter muß $LR_LOADFROMFILE hinzugefügt werden. Ggf mit BitOr arbeiten um mehrere Konstanten zu kombinieren.
-
Also so.
[autoit]#include <WinAPI.au3>
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>Opt('MustDeclareVars', 1)
[/autoit][autoit][/autoit][autoit]Global $hGUI, $hCursor
[/autoit][autoit][/autoit][autoit]
Global $nMsg$hGUI = GUICreate("Mouse Cursor")
[/autoit][autoit][/autoit][autoit]
$Handle = _WinAPI_LoadLibrary(@ScriptDir&"\Icon.ico")
$hCursor = _WinAPI_LoadImage(0, $Handle, $IMAGE_ICON, 20, 20, $LR_DEFAULTCOLOR)
_WinAPI_SetCursor($hCursor)
GUISetState(@SW_SHOW)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd -
Bei mir klappt das alles nicht. :wacko:
Sicher das _WinAPI_SetCursor dafür überhaupt die richtige Funktion ist? -
- Offizieller Beitrag
Solange ich nicht die Cursordatei habe, werde ich mich auch nicht damit abmühen. Dazu bin ich heute zu Faul.
Edit': Schaut euch mal diesen Beitrag an : [ gelöst ] Aktuellen Cursor rausfinden... ich denke der dürfte helfen.
-
Hab mal ein Icon zum spielen angehängt.
Das hier aus dem Link funktioniert:
[autoit]
[/autoit]
Func _SetSystemCursor($hCur, $id)
Local $ret = DllCall("user32.dll", "int" ,"SetSystemCursor","int",$hCur,"int",$id)
Return $ret[0]
EndFunc -
- Offizieller Beitrag
Der Link war auch einfach zu finden, trotz behinderter Forumssuche. 1. Anlauf ich habe gefunden, was gebraucht wird.
-
Hallo nuts.
Was muss man bei den Parametern eingeben, wenn wir dein ico als cursor wollen??? -