Introduction :
Récemment , je me suis lancé dans la création d'un jeu , et je voulais mettre un pointeur de souris personnalisé pour ma fenêtre .Le problème est le suivant : "En apparence , c'est simple , en réalité , ..."
J'ai cherché sur le web et j'ai trouvé ceci :
Dim ms As New System.IO.MemoryStream(My.Resources.Cursor1)
Button1.Cursor = New Cursor(ms)
(Source)Mais le problème , c'est que l'astuce marche avec VB2010 Express mais ne marche pas avec SZ2012
Même chose avec ça (note : ce code utilise des fichiers icône [*.ico]):
Me.Cursor = New Cursor(My.Resources.<FichierIcone>.Handle)
(Source)Solution :
Voici le code :
[IMPORTANT]
La ressource à spécifier doit-être une icône [*.ico]
Dim ResourceIcon As System.IO.MemoryStream = New System.IO.MemoryStream(My.Resources.<NomDeLaResource>.Handle) Dim FileIcon As System.Drawing.Icon = New System.Drawing.Icon(ResourceIcon)
Dim CursorFile As System.Windows.Forms.Cursor
CursorFile = New System.Windows.Forms.Cursor(FileIcon.Handle)
Me.Cursor = CursorFile
Maintenant , quelques explications su ce que fait ce code :
On lit l'icône depuis les ressources du projet :
Dim ResourceIcon As System.IO.MemoryStream = New System.IO.MemoryStream(My.Resources.<NomDeLaResource>)
On convertit la ressource en icône :Dim FileIcon As System.Drawing.Icon = New System.Drawing.Icon(ResourceIcon)
On crée un nouveau curseur vide
:
Dim CursorFile As System.Windows.Forms.Cursor
On dit que notre curseur a pour image l'icône :
Dim FileIcon As System.Drawing.Icon = New System.Drawing.Icon(ResourceIcon)
On change le curseur de la fenêtre par notre curseur :Me.Cursor = CursorFile