Best Icon size for displaying in the tray Best Icon size for displaying in the tray shell shell

Best Icon size for displaying in the tray


You should be using 32bpp icons with partial transparency for best effect.

The icon uses the small system size. Get this by calling GetSystemMetrics passing SM_CXSMICON. If you use font scaling this can be, for example, 20px rather than the more common 16px. I've never found MS documentation for this fact but you can readily verify it for yourself by trial and error. Not really a happy state of affairs, but it is what it is.

Update: TOndrej points out that the docs for LoadIconMetric gives tacit approval of the notification area icon being small icon size. I don't understand why this information is not included with that for notification icons.


You should probably include both 32x32 and 16x16 icons and load the appropriate one at runtime:

Notification area icons should be high-DPI aware. An application should provide both a 16x16 pixel icon and a 32x32 icon in its resource file, and then use LoadIconMetric to ensure that the correct icon is loaded and scaled appropriately.

(source: MSDN)


A single *.ico file is recommended for app icons. *.ico file can store different sizes of icons like 16, 32, 256 etc. You can convert different image files to ico format online here.

For tray icon 16x16 or 32x32 ico would fit.

Official msdn guide for icons: icons in Windows