Snippet

Barevné a animované kurzory ve Windows Forms

Přidáno: 28.8.2008       Kategorie: Aplikace       Autor: Ondřej Linhart

Barevné a animované kurzory vytvořené pomocí třídy System.Windows.Forms.Cursor z externího souboru nebo z Resources bohužel nejsou podporovány (respektive jsou zobrazeny černobíle). Tento útržek kódu vám umožní pomocí dvou jednoduchých API funkcí barevné a animované kurzory používat.

Imports System.Runtime.InteropServices
Public Class Form1
  'Identifikátor kurzoru
  Private cursorHandle As IntPtr
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    'Načíst kurzor a uložit identifikátor
    cursorHandle = LoadCursorFromFile("C:\MyCursor.ani")
    'Přiřadit kurzor pomocí identifikátoru
    Me.Cursor = New Cursor(cursorHandle)
  End Sub
  Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    Try
      If disposing AndAlso components IsNot Nothing Then
        components.Dispose()
      End If
      'Uvolnit zdroje využívané kurzorem
      DestroyCursor(cursorHandle)
      cursorHandle = IntPtr.Zero
    Finally
      MyBase.Dispose(disposing)
    End Try
  End Sub
End Class
'Definice Unmanaged API funkcí
Public Module UnsafeNativeMethods
  <DllImport("user32.dll")> _
  Public Function LoadCursorFromFile(ByVal lpFileName As String) As IntPtr
  End Function
  <DllImport("user32.dll")> _
  Public Function DestroyCursor(ByVal hCursor As IntPtr) As Boolean
  End Function
End Module 
 

VBNET.CZ | © 2007 Tomáš Herceg, Tomáš Jecha | Kopírování a přejímání jakéhokoliv obsahu z tohoto webu je bez písemného svolení autorů zakázáno.