Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Maus und Tastatur

Neuer Mauscursor (WinAPI)

Lizenz:Erster Autor:Letzte Bearbeitung:
LGPLRedakteurVolta 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
  • Das Code-Beispiel wurde am 11.12.2007 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 16.12.2011 von RedakteurVolta gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen