Click here to Skip to main content

Use Icons for cursors, not ".CUR"

Many developers use ".cur" cursor files. Using them myself in Visual Studio 2008, they are not the easiest things to work with for many reasons.

  1. They are not easy to create without expensive software. (unless you are using the editor within Visual Studio)
  2. They cannot easily be ported in the express editions of Visual Studio, which leaves most hobbyist developers out. (You must first import them as a resource or
  3. Sometimes they can be hard to even link into your code.

To get around using ".cur" files for your cursors, We will be using Icons. With Icons you can still use transparency and create shadows.

You may use either Visual Studio or the VB.NET Express edition(which is free for use):

Step 1:

Create a new project

note : I am using VB Express

This menu shows the generic Windows cursors

You can access this menu by code as shown.
Step 2:

Getting it ready

To create cursors from icons, you must obviously have an icon to do so with. There are many programs you can use the many Devs or hobbyists might have. I am going to use GIMP: {New window}

GIMP is a free photo manipulator similar to Photoshop, but it can also be used for image creation.

If you do not have an image to use or create, right-click and save this one :

Step 3:

Making it work

Import the Icon as a resource.
Choose the option "Add existing file"

Make sure that the Access Modifier is set to "Public"

Simply put the code that lets the icon get a handle so that it might be used as a cursor.
Me.Cursor = New Cursor(My.Resources.Form1.cursor.Handle)

The finished project

The only foreseeable problem with the use of an icon as a cursor is that the location of the pointer will be in the center of the cursor. This can be easily overcome by making the image larger, while keeping the image in the lower-right corner. As shown:

I also added a shadow to the cursor.

Thank you for reading my Tips 'n Tricks post. I hope to see you in later tips or articles. Cool | :cool:

EDIT: I added a dotted line to the last cursor illustrating where the cursors hotspot will be. I also added a shadow to that cursor.
Web01 | 2.8.160204.4 | Advertise | Privacy
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service