Descubra qué colores se utilizan al utilizar el paquete de funciones MFC en estilo Office 2007

StackOverflow https://stackoverflow.com/questions/8761

  •  08-06-2019
  •  | 
  •  

Pregunta

Estoy actualizando parte de nuestro código C++ heredado para usar el "paquete de funciones MFC" que Microsoft lanzó para Visual Studio 2008.Hemos utilizado las nuevas clases para derivar nuestra aplicación de CFrameWndEx y estamos aplicando los estilos de Office 2007 para darle a nuestra aplicación una apariencia más moderna.Esto nos proporciona títulos de ventanas llenos de degradado, barras de estado, etc., y el uso de las barras de herramientas de la cinta.

Sin embargo, nuestra aplicación contiene algunos controles dibujados por el propietario y me gustaría actualizarlos para que coincidan con la combinación de colores utilizada por el paquete de funciones.Idealmente, me gustaría saber los colores claros y sombreados de la barra de herramientas que se utilizan actualmente.

He buscado en la documentación y en la web y todavía no he encontrado nada.¿Alguien sabe cómo encontrar esta información?

[Editar]

En particular, necesitamos averiguar qué colores se utilizan en tiempo de ejecución.Puede cambiar la apariencia de su aplicación en tiempo de ejecución utilizando la nueva función estática CMFCVisualManager::SetDefaultManager.

La siguiente página de msdn muestra qué tipo de estilos están disponibles, en particular el aspecto de Office2007:enlace a msdn

¿Fue útil?

Solución

¿Has buscado en el código fuente de MFC, que encontrarás en algo como

C:\Archivos de programa\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc

Otros consejos

Parece que CMFCVisualManager ofrece varios métodos para obtener información de color, p.

CmfcvisualManager :: getSmartDockingBaseGuidEcolors () CMFCVISUALManager :: GetToolBarhighLightColor ()

Eche un vistazo a los documentos de MSDN para CMFCVisualManager.

Buena sugerencia, pero desafortunadamente solo devuelven varios tonos de gris, cuando actualmente estoy ejecutando mi aplicación con el estilo CMFCVisualManagerOffice2007::Office2007_LunaBlue

Lamentablemente, la ayuda de MSDN está "en construcción", por lo que ni siquiera te dice qué se supone que deben estar haciendo.

afxGlobalData contiene información útil sobre los colores, pinceles y fuentes actuales que utiliza MFC Feature Pack.En particular yo uso afxGlobalData.m_clrBarFace al pintar mis propios fondos de la barra de control.

(tenga en cuenta que no estoy frente a la PC de mi trabajo, por lo que la sintaxis anterior no es acertada).

Supongo que podrías usar tu editor de imágenes favorito y elegir los colores de una captura de pantalla.

"Supongo que podrías usar tu editor de imágenes favorito y elegir los colores de una captura de pantalla".

Básicamente, esto es lo que estoy haciendo en este momento y he definido una lista de constantes de las que saco los colores.¡Aunque no parece muy elegante!

Parece que CMFCVisualManager ofrece varios métodos para obtener información de color, p.

CMFCVisualManager::GetSmartDockingBaseGuideColors()
CMFCVisualManager::GetToolbarHighlightColor()

Eche un vistazo a los documentos de MSDN para CMFCVisualManager.

@GateKiller, el OP no está desarrollando un complemento de Office 2007, por lo que las pautas de la interfaz de usuario no ayudarán mucho.Es una aplicación MFC que utiliza el Paquete de características de Visual C++ 2008 lo que permite que las aplicaciones MFC adopten la apariencia de Office 2007.

Buena sugerencia, pero desafortunadamente solo devuelven varios tonos de gris, cuando actualmente estoy ejecutando mi aplicación con el estilo CMFCVisualManagerOffice2007::Office2007_LunaBlue

CMFCVisualManagerOffice2007::GetTabFrameColors: ¿el parámetro de salida clrFace es gris?

¿Quizás sean todas máscaras sobre un único tono base para cada tema?Suponiendo que pueda determinar qué combinación de colores está vigente con CMFCVisualManagerOffice2007::GetStyle(), tal vez pueda determinar cuál es ese tono y luego enmascarar un poco con los métodos GetxxxColor().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top