Wednesday, August 09, 2006

 

Loading a color cursor in .NET 2.0

The MSDN documentation on the Cursor class says
The Cursor class does not support animated cursors (.ani files) or cursors with colors other than black and white.
Consequently, if you try to display a color cursor, it appears as a black outline of the original. So, supposing that you already have a .cur file containing a color cursor, follow these steps to display it. If you don't already have a color .cur file, you can use Visual Studio 2005 to create such a file.
  1. Add the .cur to the project's resources using the Visual Studio 2005 resource designer by using the the "Add existing file" toolbar item. I'm going to assume that you named the resource "hand2."
  2. Add a P/Invoke declaration for LoadCursorFromFile.
    [DllImport("user32.dll")]
    static extern IntPtr LoadCursorFromFile(string lpFileName);
    
  3. At runtime, copy the cursor resource to a temporary file, ask the Win32 API to load that file as a cursor, and create .NET Cursor object from the Win32 handle.
    private Cursor LoadColorHandCursor()
    {
        string path = Path.GetTempFileName();
        File.WriteAllBytes(path, Properties.Resources.hand2);
        Cursor hand = new Cursor(LoadCursorFromFile(path));
        File.Delete(path);
        return hand;
    }
    
The same technique will work in .NET 1.x, but it'll take a little more work to write the cursor to a temporary file.

Here's a working code example.

kick it on DotNetKicks.com


Friday, August 04, 2006

 

Cramer says oil will be more expensive

Jim Cramer of Real Money, Real Money, and Mad Money, who claims to have made some pretty good money in his day by correctly betting on rising energy prices, thinks the price of oil isn't getting any cheaper. He gave a number of reasons for this. Cramer is by no means condemning oil usage; he's merely identifying an opportunity to invest. However, it nearly gives me and my Prius a horrible smug problem and pushes me further toward wanting to find a non-petroleum way to power my commute to save money in anticipation of continued rising oil prices.

This page is powered by Blogger. Isn't yours?