Code-Beispiel
Neuer Mauscursor (WinAPI)
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
LGPL | Volta | 16.12.2011 |
Diese Methode den Mauscursor zu ändern habe ich im englischen FBforum gefunden.
Es wird eine Funktion in die Windows Procedur des fbgfx-Fensters eingeklinkt, die WM_SETCURSOR bedient.
(Da müssen sich doch noch weitere Funktionen ändern lassen?)
#Include Once "windows.bi"
Dim As HWND hwnd
Dim Shared As HCURSOR WindowCursor
Dim Shared As WNDPROC OldWinProc
'method of jo fers http://www.freebasic.net/forum/viewtopic.php?p=84419
'Diese Funktion wird in die Windowsprocedur eingeklinkt.
Function CursorWinProc(ByVal hwnd As HWND, ByVal uMsg As UINT, _
ByVal wParam As WPARAM, ByVal lParam As LPARAM) As LRESULT
If uMsg = WM_SETCURSOR Then
SetCursor(WindowCursor)
Return 1
End If
Return CallWindowProc(OldWinProc, hwnd, uMsg, wParam, lParam)
End Function
Screen 18, 32
ScreenControl 2, Cast(Integer,hwnd) 'Fensterhandle
' neuen Cursor festlegen
WindowCursor = LoadCursor(NULL, IDC_HAND )
'WindowCursor = LoadCursorFromFile("HandPoint.cur")
' Hook new window procedure
OldWinProc = Cast(WNDPROC, SetWindowLong(hwnd, GWL_WNDPROC, CLng(@CursorWinProc)))
Print "neuer Cursor!"
Do While Inkey = ""
Sleep 5
Loop
Print "Cursor kann auch gewechselt werden!"
WindowCursor = LoadCursor(NULL, IDC_CROSS)
Do While Inkey = ""
Sleep 5
Loop
' Restore original window procedure
SetWindowLong hwnd, GWL_WNDPROC, CLng(OldWinProc)
Cls
Print "alter Cursor!"
Sleep
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|