I am developing an MFC application in C ++ using Visual Studio 2010. There is a CToolBarCtrl with some drop-down buttons next to the icons.
A user running Windows 8 said that he could not see one of the icons on this toolbar. They provided a screenshot that shows that they are running Windows 8 with a 150% increase in UI. My application is currently configured to not be DPI-aware, so this should not really change. (EDIT: apparently that really matters, after all - they no longer have a problem switching to 96 DPI.)
As you can see from the screenshots below, the drop-down buttons on the toolbar are much wider when installing Windows than they should be. The distance between the icons on the left toolbar is so great that the last icon is no longer visible. The correct toolbar in the screenshot (which does not have drop-down buttons) looks as intended.
Mine (as it should be):

Theirs (dropdown buttons are too wide):

My application already sets the size of the icons (16x16) and buttons (27x24), but this, obviously, does not affect the size of the drop-down button.
So my question is: why is it possible that the drop-down buttons can be wider than during the default installation in Windows, and how can I change their default size so that all the icons fit in the toolbar? I did not find an API that could set the width of the toolbar drop-down menu button.
Initialize the code in my class derived from CToolBarCtrl :
SetButtonStructSize(sizeof(TBBUTTON)); SetBitmapSize(CSize(16, 16)); SetButtonSize(CSize(27, 24)); SetImageList(&icons); SetDisabledImageList(&disabledIcons); LONG lStyleOld = GetWindowLong(m_hWnd, GWL_STYLE); lStyleOld |= CCS_NORESIZE | CCS_NOPARENTALIGN | CCS_NODIVIDER | TBSTYLE_TOOLTIPS | TBSTYLE_FLAT; SetWindowLong(m_hWnd, GWL_STYLE, lStyleOld);
source share