This article has been
excerpted from book "Graphics Programming with GDI+".
The Icon class represents a Windows icon, which is a small transparent bitmap.
Just like the Bitmap class, this class is inherited from the Image class.
An application can create an Icon object from a stream, string, icon, icon file,
or type by using the Icon class constructors with the size of the icon as an
optional parameter. The Icon provides four read-only properties-Handle, Height,
Size, and Width-which return a window handle to the icon, height, size, and
width of an icon, respectively.
Listing 7.21 creates an Icon object from an icon file and sets the icon of a
form using the Form class's Icon property.
LISTING 7.21: Creating an icon and setting a form's Icon property
private void
Form1_Paint(object sender,
PaintEventArgs e)
{
//Create an icon
Icon curIcon =
new Icon("D:/VB.NET
Basic Practice Projects/WindowsApplication8/Images/ico-32bit/wi0126-48.ico");
//Set form's icon
this.Icon = curIcon;
//Get icon properties
float h = curIcon.Height;
float w = curIcon.Width;
Size sz = curIcon.Size;
}
The FromHandle method of the Icon class creates an Icon object from a window
handle to an icon (HICON). The Save method saves an Icon object to a stream, and
the ToBitmap method converts an Icon object to a Bitmap object. Listing 7.22
creates a Bitmap object from an Icon object using ToBitmap and draws the bitmap
using DrawImage.
LISTING 7.22: Creating a bitmap from an icon and displaying it
private void
Form1_Paint(object sender,
PaintEventArgs e)
{
//Create and icon
Icon curIcon =
new Icon("D:/VB.NET
Basic Practice Projects/WindowsApplication8/Images/ico-32bit/wi0126-48.ico");
//Create a bitmap from an icon
Bitmap bmp =
curIcon.ToBitmap();
//Draw bitmap
Graphics g = e.Graphics;
g.Clear(this.BackColor);
g.DrawImage(bmp, 10, 10);
g.Dispose();
}
Figure 7.35 shows the output from Listing 7.21 and 7.22.
FIGURE 7.35: Viewing icons
Sometimes you will need to convert a Bitmap object into an Icon object.
The following code snipped shows how to do this:
Icon curIcon;
curIcon = Icon.FromHandle(bmp.GetHicon());
Conclusion
Hope the article would have helped you in understanding working with Icons in
GDI+. Read other articles on GDI+ on the website.
|
This book teaches
.NET developers how to work with GDI+ as they develop applications
that include graphics, or that interact with monitors or printers.
It begins by explaining the difference between GDI and GDI+, and
covering the basic concepts of graphics programming in Windows. |