2009-07-04 6 views
1

J'ai essayé d'écrire du code qui charge un fichier .png, joint des informations de point d'accès et l'enregistre dans un fichier .cur.Enregistrer un curseur personnalisé créé par CreateIconIndirect dans un fichier cur

Jusqu'à présent, j'ai le code pour créer un objet System.Windows.Forms.Cursor, que je vais poster ci-dessous:

Bitmap bmp = new Bitmap(source_image); 
IconInfo inf = new IconInfo(); 
GetIconInfo(bmp.GetHicon(), ref inf); 
inf.xHotspot = /* code to get x hotspot */; 
inf.yHotspot = /* code to get y hotspot */; 
inf.fIcon = false; 
IntPtr iconPtr = CreateIconIndirect(ref inf); 
return new Cursor(iconPtr); 

Je l'ai pris directement à partir this tutorial.

J'ai le curseur pour fonctionner correctement dans mon application, il ne semble tout simplement pas possible de l'enregistrer dans un fichier. Toute aide les gars?

Répondre

2

Je ne pense pas qu'il y ait une fonction à sauvegarder dans un fichier, vous devez probablement écrire le fichier avec les en-têtes correctes, voir Icons in Win32 pour les détails de format (x et y dans les plans et les champs bpp IIRC)

+0

C'est ce que j'ai dû faire pour créer des curseurs personnalisés, enregistrer dans un ico et changer les bits nécessaires dans un éditeur hexadécimal. Je pourrais finir par le faire par programme si. – MiffTheFox

+0

Et oui, j'ai utilisé Icon.Save pour l'enregistrer dans un MemoryStream, puis juste définir les octets requis à la main. – MiffTheFox

+0

@MiffTheFox Je dois enregistrer des fichiers .cur, pouvez-vous m'en donner un coup de main? Comment l'as-tu programmé en C#? Je vous remercie. –

Questions connexes