Découvrez les couleurs sont en cours d'utilisation lors de l'utilisation du MFC pack de fonctionnalités dans Office 2007 style

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

  •  08-06-2019
  •  | 
  •  

Question

Je suis à jour certains de notre héritage de code C++ pour utiliser le MFC feature pack" que Microsoft a publié pour Visual Studio 2008.Nous avons utilisé les nouvelles classes de dériver de notre application CFrameWndEx, et sont à appliquer la Office 2007 styles à donner à notre demande une apparence plus moderne.Cela nous donne remplis de titres de fenêtre, des barres de statut, etc, et l'utilisation du ruban barres d'outils.

Cependant, notre application contient certaines propriétaire contrôles dessinés, et j'aimerais mettre à jour ces pour faire correspondre les couleurs utilisées par le pack de fonctionnalités.Idéalement, j'aimerais savoir la lumière et de l'ombre de la barre d'outils couleurs qui sont actuellement en cours d'utilisation.

J'ai eu une chasse autour de la documentation et web et n'ont pas encore trouvé quoi que ce soit.Personne ne sait comment trouver cette information?

[Modifier]

En particulier, nous avons besoin de trouver les couleurs qui sont utilisées lors de l'exécution.Vous pouvez changer l'apparence de votre application lors de l'exécution à l'aide de la nouvelle fonction statique CMFCVisualManager::SetDefaultManager.

Le site web msdn suivant vous indique quels types de styles sont disponibles, en particulier le Office2007 look:lien vers msdn

Était-ce utile?

La solution

Avez-vous regardé dans le code source MFC, vous trouverez dans quelque chose comme

C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc

Autres conseils

Ressemble CMFCVisualManager propose plusieurs méthodes pour obtenir des informations de couleur, par exemple

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

Jetez un oeil à la MSDN docs pour CMFCVisualManager.

Bonne suggestion, mais malheureusement ils ont juste retour de diverses nuances de gris, lorsque j'exécute mon application avec le style CMFCVisualManagerOffice2007::Office2007_LunaBlue

Fâcheusement l'aide de msdn est "en construction" afin de ne même pas vous dire ce qu'ils sont censés être en train de faire!

afxGlobalData contient quelques informations utiles sur le courant de couleurs, des pinceaux et des polices utilisées par le MFC Feature Pack.En particulier, je utiliser afxGlobalData.m_clrBarFace lors de la peinture de ma propre barre de contrôle de milieux.

(notez que je ne suis pas devant mon PC donc la syntaxe ci-dessus n'est pas sur place.)

Je suppose que vous pourriez utiliser votre éditeur d'image préféré et choisir les couleurs à partir d'une capture d'écran.

"Je suppose que vous pourriez utiliser votre éditeur d'image préféré et choisir les couleurs à partir d'une capture d'écran."

C'est essentiellement ce que je fais en ce moment, et j'ai défini une liste de constantes à partir de laquelle je sors les couleurs.Il ne semble pas très élégant!

Ressemble CMFCVisualManager propose plusieurs méthodes pour obtenir des informations de couleur, par exemple

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

Jetez un oeil à la MSDN docs pour CMFCVisualManager.

@GateKiller, l'OP n'est pas le développement d'un Office 2007 add-in, de sorte que l'INTERFACE utilisateur des lignes directrices ne seront pas vraiment aider.C'est une application MFC à l'aide de la Visual C++ 2008 Feature Pack qui permet MFC apps pour tirer sur le Bureau de 2007 à regarder et se sentir.

Bonne suggestion, mais malheureusement ils ont juste retour de diverses nuances de gris, lorsque j'exécute mon application avec le style CMFCVisualManagerOffice2007::Office2007_LunaBlue

CMFCVisualManagerOffice2007::GetTabFrameColors - le clrFace sortie param est gris?

Peut-être qu'ils sont tous des masques sur le dessus d'une base unique teinte pour chaque thème?En supposant que vous pouvez déterminer le schéma de couleur est en effet avec CMFCVisualManagerOffice2007::GetStyle(), peut-être vous pouvez comprendre ce que la teinte est et puis faire un peu de masquage avec le GetxxxColor() méthodes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top