Click here to Skip to main content
13,301,510 members (94,719 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


13 bookmarked
Posted 18 Jul 2010

Caps Lock Status Tray Application

, 18 Jul 2010
Rate this:
Please Sign up or sign in to vote.
See the state of caps lock, num lock, scroll lock in the Windows tray


This application displays the current state of the CAPS lock, NUM lock, and SCROLL lock in a single Windows tray icon.


Recently I bought a wireless keyboard that lacks any LED indication for the state of the CAPS lock and NUM lock. This is infuriatingly inconvenient, so I whipped up this little application using the Win32++ framework by David Nash.

Using the Code

The included solution and project are for Visual Studio 2008. The source should work in any development environment for Windows.

The Win32++ framework is refreshingly simple compared to MFC and a delight to work with. This application is actually a modified sample from among the dozens of working samples that come with Win32++. (I actually found it refreshing that all the samples 'just worked' right out of the zip file - with project and solution files for a handful of development environments - a rare gem in the open source world.)

The only thing I had to figure out for myself was how to get the main form to start up in the hidden state and show the tray icon without any user interaction. The trick is to set the creation style to WS_ICONIC and the extended style to something that doesn't minimize to the task bar, like WS_EX_TOOLWINDOW.

void CView::PreCreate( CREATESTRUCT& cs )
	// This function will be called automatically by Create. It provides an
	// opportunity to set various window parameters prior to window creation.
	// You are not required to set these parameters, any parameters which
	// aren't specified are set to reasonable defaults.

	// Set some optional parameters for the window
	cs.dwExStyle = WS_EX_TOOLWINDOW;       // Extended style = WS_ICONIC;                  // Start up minimized
	cs.hMenu =  LoadMenu( GetApp()->GetResourceHandle(), 

Points of Interest

Feel free to improve the icons; I am not an artist. Enjoy!


  • July 2010 - Initial submission


This article, along with any associated source code and files, is licensed under The MIT License


About the Author

ron wilson
Software Developer (Senior) Harris Corporation
United States United States
I'm your huckleberry.

Check out more beards here.

You may also be interested in...


Comments and Discussions

GeneralIssues Pin
Karpov Andrey27-Dec-10 21:30
memberKarpov Andrey27-Dec-10 21:30 
GeneralRe: Issues Pin
ron wilson29-Dec-10 16:05
memberron wilson29-Dec-10 16:05 
GeneralRe: Issues Pin
Karpov Andrey29-Dec-10 20:52
memberKarpov Andrey29-Dec-10 20:52 
GeneralTip/Trick... Pin
Dave Kreskowiak17-Jul-10 19:21
mvpDave Kreskowiak17-Jul-10 19:21 
GeneralRe: Tip/Trick... Pin
ron wilson18-Jul-10 3:41
memberron wilson18-Jul-10 3:41 
GeneralRe: Tip/Trick... Pin
Dave Kreskowiak18-Jul-10 10:06
mvpDave Kreskowiak18-Jul-10 10:06 
GeneralRe: Tip/Trick... Pin
ron wilson18-Jul-10 10:30
memberron wilson18-Jul-10 10:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.171207.1 | Last Updated 18 Jul 2010
Article Copyright 2010 by ron wilson
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid