Descubra qué colores están en uso cuando usa el paquete de características MFC en el estilo de Office 2007

votos
4

Estoy actualizando algunos de nuestros códigos heredados de C ++ para usar el paquete de características 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 dar a nuestro aplicación una apariencia más moderna. Esto nos da títulos de ventana llenos de degradado, barras de estado, etc., y el uso de las barras de herramientas de cinta.

Sin embargo, nuestra aplicación contiene algunos controles dibujados por el propietario, y me gustaría actualizarlos para que coincidan con el esquema de color utilizado por el paquete de características. Idealmente, me gustaría conocer los colores claros y sombreados de la barra de herramientas que están actualmente en uso.

He tenido una cacería alrededor de la documentación y la web y aún no he encontrado nada. ¿Alguien sabe cómo encontrar esta información?

[Editar]

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

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

Publicado el 12/08/2008 a las 13:33
fuente por usuario
En otros idiomas...                            


9 respuestas

Respondida el 12/08/2008 a las 14:09
fuente por usuario

votos
1

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

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

Respondida el 12/08/2008 a las 14:14
fuente por usuario

votos
0

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

Respondida el 12/08/2008 a las 14:38
fuente por usuario

votos
0

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

Esto es esencialmente lo que estoy haciendo en este momento, y he definido una lista de constantes a partir de la cual saco los colores. ¡No parece muy elegante!

Respondida el 13/08/2008 a las 13:27
fuente por usuario

votos
0

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

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

Eche un vistazo a los documentos de MSDN para CMFC VisualManager.

Respondida el 13/08/2008 a las 13:51
fuente por usuario

votos
0

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

Respondida el 13/08/2008 a las 13:56
fuente por usuario

votos
1

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

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

Eche un vistazo a los documentos de MSDN para CMFC VisualManager.

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

Curiosamente, la ayuda msdn está "en construcción", ¡por lo que ni siquiera te dice lo que se supone que deben hacer!

Respondida el 15/08/2008 a las 11:39
fuente por usuario

votos
0

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 de clrFace es gris?

¿Tal vez son máscaras en la parte superior de un único tono base para cada tema? Asumiendo que puede determinar qué combinación de colores está en efecto con CMFCVisualManagerOffice2007 :: GetStyle (), quizás pueda averiguar cuál es ese matiz y luego enmascare con los métodos GetxxxColor ().

Respondida el 18/08/2008 a las 17:25
fuente por usuario

votos
1

afxGlobalDatacontiene información útil sobre los colores, pinceles y fuentes actuales que utiliza el paquete de características MFC. En particular, uso afxGlobalData.m_clrBarFaceal pintar mis propios fondos de barra de control.

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

Respondida el 14/10/2008 a las 18:28
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more