Aflați ce culori sunt utilizate atunci când utilizați pachetul Feature Feature MFC în stilul Office 2007

Actualizez câteva din codul nostru C + vechi pentru a utiliza "pachetul de funcții MFC" pe care Microsoft la lansat pentru Visual Studio 2008. Am folosit noile clase pentru a extrage aplicația noastră din CFrameWndEx și aplicăm stilurile Office 2007 pentru a da aplicați un aspect mai modern. Acest lucru ne oferă titluri de ferestre pline de gradient, bare de stare etc., precum și utilizarea barelor de instrumente pentru panglici.

Cu toate acestea, aplicația noastră conține controale ale unui proprietar și aș vrea să le actualizez pentru a se potrivi cu schema de culori utilizată de pachetul de funcții. În mod ideal aș vrea să știu culorile luminii și culorilor umbrite care sunt în prezent utilizate.

Am avut o vânătoare în jurul documentației și a paginii web și nu am găsit încă nimic. Știe cineva cum să găsească această informație?

[Editați | ×]

În special, trebuie să aflăm ce culori sunt utilizate în timpul execuției. Puteți schimba aspectul aplicației dvs. în timpul rulării utilizând noua funcție statică CMFCVisualManager :: SetDefaultManager.

The following msdn page shows you what kind of styles are available, in particular the Office2007 look: link to msdn

0
fr hi bn

9 răspunsuri

0
adăugat

Cred că ați putea folosi editorul dvs. de imagine preferat și alegeți culorile de pe o apucare de ecran.

0
adăugat

Se pare că CMFCVisualManager oferă mai multe metode pentru a obține informații de culoare, de ex.

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

Aruncați o privire la documentele MSDN pentru CMFCVisualManager.

0
adăugat

@GateKiller, OP nu dezvoltă un add-in pentru Office 2007, astfel încât liniile directoare UI nu vor ajuta cu adevărat. Este o aplicație MFC utilizând Pachetul de caracteristici Visual C ++ 2008 care permite aplicațiilor MFC să preia aspectul Office 2007.

0
adăugat

Sugestie bună, dar, din păcate, ei întorc doar diferite nuanțe de gri, când îmi dau în prezent aplicația cu stilul CMFCVisualManagerOffice2007 :: Office2007_LunaBlue

CMFCVisualManagerOffice2007 :: GetTabFrameColors - paramul de ieșire clrFace este gri?

Poate că toate măștile sunt deasupra unei singure nuanțe de bază pentru fiecare temă? Presupunând că puteți determina ce schemă de culoare este în vigoare cu CMFCVisualManagerOffice2007 :: GetStyle (), poate vă puteți da seama ce este această nuanță și apoi faceți o mascare folosind metodele GetxxxColor ().

0
adăugat

"Cred că ați putea folosi editorul dvs. preferat de imagini și ați ales culorile dintr-o apucare pe ecran."

Aceasta este în esență ceea ce fac în acest moment și am definit o listă de constante din care scoatem culorile. Nu prea par foarte elegant!

0
adăugat

Se pare că CMFCVisualManager oferă mai multe metode pentru obținerea informațiilor de culoare, de exemplu

     

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

     

Uitați-vă la documentele MSDN pentru CMFCVisualManager.

Sugestii bune, dar, din păcate, ele întoarce doar diferite nuanțe de gri, când în prezent execut cererea mea cu stilul CMFCVisualManagerOffice2007 :: Office2007_LunaBlue

Annoyingly ajutorul de la msdn este "în construcție", deci nu vă spune chiar ce ar trebui să facă!

0
adăugat

Te-ai uitat în codul sursă MFC, pe care îl vei găsi în ceva asemănător

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

0
adăugat

afxGlobalData contains some useful information on the current colours, brushes and fonts being used by the MFC Feature Pack. In particular I use afxGlobalData.m_clrBarFace when painting my own control bar backgrounds.

(rețineți că nu sunt în fața PC-ului meu de lucru, astfel încât sintaxa de mai sus nu este la fața locului.)

0
adăugat