Static LED Control

Environment: Compiled using VC6.0 Sp3 and tested using Win95/98 WinNT4.0 and Win 2000

Sometimes you find yourself needing an indicator to reflect various statuses. For example, receive and transmit on a modem. The following article is a simple LED static class.

The CLed class is a static control for a simple LED control and is derived from the CStatic class. Using a single bitmap of an LED array, the BitBlt function is used to index through the bitmap for the appropriate LED. Note that the bitmap has a mask color of RGB(255,0,255) in order to make the LED appear to be transparent.

LED Matrix
Led Matrix bitmap

The code assumes LEDs of 16 X 16 pixels, but is not limited to that. If you decide to that smaller or larger LEDs are necessary, than set the LED_SIZE to the size desired and modify the LED bitmap matrix to reflect the change.


Using the CLed class is very simple when using the MFC Class Wizard Dialog. Within a dialog, use the following steps to add an LED.

  1. Insert a new static frame where you want the LED.
  2. Rename the static frame to somthng other than IDC_STATIC. Name it somthing like IDC_LED.
  3. Using the MFC ClassWizard, add a new member valiable for IDC_LED. The catagory should be a control and the Variable Type should be CLed. If CLed type does not show up in the Variable type dropdown, then you need to recreate the .clw file. I.E. delete the .clw file and run the Wizard Dialog again.
  4. Make sure that you include Led.h in you dlg.h file.

Also, you need to create a IDB_LEDS resource. Leds.bmp is included to help you do this. In the LedDemo project, there is also a demonstration on adding the CLed static control within a CView class.


void SetLed( int nLedColor, int nMode, int nShape );


nLedColor - Specifies LED color. You can use the following attributes:


nMode - Specifies LED mode where:

CLed::LED_ON - Turn on LED
CLed::LED_OFF - Turn off LED

nShape  Specifies round or square LED where:

CLed::LED_ROUND - specifies a round LED
CLed::LED_SQUARE - specifies a square LED

Use this method to set and display the LED to the preferred color and mode.

void Ping( DWORD dwTimeout = 1000 );


dwTimeout - Specifies the duration that the led is on in milliseconds.

Use this function when a short "ON" duration is needed for an LED operation. The LED will automatically turn for the duration specified and then turn off.



Download demo project - 32KB
Download source - 4KB


  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • U.S. companies are desperately trying to recruit and hire skilled software engineers and developers, but there's simply not enough quality talent to go around. In response, companies often resort to inferior solutions -- hiring substandard developers and engineers, recruiting talent on a part-time or temporary basis, poaching people from competitors, or burdening an already stressed IT staff for more of their labor. Fortunately, there's a better solution. Read this white paper to learn the business value of …

  • Moving from an on-premises environment to Office 365 does not remove the need to plan for disruptions or reduce the business risk requirements for protecting email services. If anything, some risks increase with a move to the cloud. Read how to ease the transition every business faces if considering or already migrating to cloud email. This white paper discusses: Setting expectations when migrating to Office 365 Understanding the implications of relying solely on Exchange Online security Necessary archiving …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date