c++ - una - menu desplegable vertical html
Barra de herramientas de MFC: cómo configurar el ancho del botón desplegable (0)
Estoy desarrollando una aplicación C ++ basada en MFC utilizando Visual Studio 2010. Hay una CToolBarCtrl
con algunos botones desplegables junto a los iconos.
Un usuario que ejecuta Windows 8 ha informado que no puede ver uno de los iconos en esta barra de herramientas. Proporcionaron una captura de pantalla que muestra que están ejecutando Windows 8 con un zoom de UI del 150%. Actualmente, mi aplicación está configurada para no ser compatible con DPI, por lo que en realidad no debería marcar la diferencia. (EDIT: aparentemente hace una diferencia, después de todo, ya no tienen el problema cuando cambian a 96 DPI).
Como se puede ver en las capturas de pantalla a continuación, los botones desplegables de la barra de herramientas son mucho más amplios en su instalación de Windows de lo que deberían ser. El espacio entre los íconos en la barra de herramientas izquierda es tan grande que ya no se puede ver el último ícono. La barra de herramientas derecha en la captura de pantalla (que no tiene botones desplegables) aparece como se pretendía.
El mío (como debería ser):
Los suyos (botones desplegables demasiado anchos):
Mi aplicación ya establece los tamaños de icono (16x16) y botón (27x24), pero eso obviamente no afecta el tamaño del botón desplegable.
Entonces mi pregunta es: ¿por qué es posible que los botones desplegables puedan ser más anchos que en mi instalación predeterminada de Windows, y cómo puedo cambiarlos para que sean del tamaño predeterminado para que todos los iconos quepan en la barra de herramientas? No encontré ninguna API que realmente pudiera establecer el ancho del botón desplegable de la barra de herramientas.
Código de Init en mi clase derivado de 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);