In Visual C++ App, disabled toolbar buttons show as solid grey boxes
Posted on 2015-01-06
I have a VC++ app created using VS2012. In said app, I have a few toolbars. When the toolbar images are enabled, the images on each toolbar button display nicely. However, when a toolbar button is disabled (intentionally), the image(s) on the toolbar buttons display as a solid grey boxes, instead of as a greyed out (disabled) version of the original image.
Here's some more detail:
I am loading the images at run-time by using the following:
CToolBarCtrl& bar = m_wndMyToolBar.GetToolBarCtrl();
CImageList *pList = bar.GetImageList();
HICON hIconSomeImage = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_SOME_ENABLED_ICON));
This code works well to get the image to display when the toolbar button is enabled.
To solve the issue of the image being a solid grey box when the toolbar button is disabled, I tried creating an image list for disabled toolbar images, as follows:
imgListDisabled.Create(16, 15, ILC_COLOR32, 8, 8);
HICON hIconTest = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_SOME_DISABLED_ICON));
The above code compiles, and runs without throwing any errors, yet the net result is a solid grey box instead of the disabled image.
I should add that the images I am using for the toolbar buttons are icon files (.ico files), and these icons have a high color depth.
Any help would be greatly appreciated.