2008-08-12 4 views
5

Microsoft에서 Visual Studio 2008 용으로 출시 한 "MFC 기능 팩"을 사용하기 위해 기존 C++ 코드를 일부 업데이트하고 있습니다. 새로운 클래스는 CFrameWndEx에서 응용 프로그램을 파생시키고 Office 2007 스타일을 적용하여 응용 프로그램을보다 현대적인 모양으로 만듭니다. 그라디언트로 채워진 창 제목, 상태 표시 줄 등, 리본 툴바의 사용법을 알려줍니다.Office 2007 스타일의 MFC 기능 팩을 사용할 때 어떤 색을 사용하는지 확인하십시오.

그러나 우리 응용 프로그램에는 소유자가 그린 일부 컨트롤이 포함되어 있으므로 기능 팩에서 사용되는 색 구성표와 일치하도록 업데이트하고 싶습니다. 이상적으로 현재 사용중인 밝은 색 및 음영 처리 된 도구 모음 색을 알고 싶습니다.

문서 및 웹을 둘러보고 아직 아무것도 찾지 못했습니다. 누구든지이 정보를 찾는 방법을 알고 있습니까?

[편집]

우리가 색을 런타임에 사용되는 알아낼 필요 특히

. 런타임시 새 정적 함수 CMFCVisualManager :: SetDefaultManager를 사용하여 응용 프로그램의 모양을 변경할 수 있습니다. link to msdn

답변

2

당신은 당신이

C처럼 뭔가를 찾을 수있는 MFC 소스 코드에서 봤어 : \ 프로그램 파일 \의 Microsoft Visual Studio 9.0 \ VC \ atlmfc \ SRC \ MFC

0

내가 당신을 생각 좋아하는 이미지 편집기를 사용하고 화면 잡기에서 색상을 선택할 수 있습니다.

0

"좋아하는 이미지 편집기를 사용하고 화면 캡처에서 색상을 선택할 수 있습니다."

이것은 본질적으로 내가 지금하고있는 일이며, 색상을 추출하는 상수 목록을 정의했습니다. 매우 우아하게 보이지 않는다!

0

CMFCVisualManager는 컬러 정보를 가져 오는 몇 가지 방법을 제공합니다.

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

CMFCVisualManager에 대한 MSDN 문서를 살펴보십시오.

0

@GateKiller, OP는 Office 2007 추가 기능을 개발하지 않으므로 UI ​​지침이 도움이되지 않습니다. 이것은 Visual C++ 2008 Feature Pack을 사용하는 MFC 응용 프로그램으로, MFC 응용 프로그램이 Office 2007의 모양과 느낌을 사용할 수있게합니다.

1

CMFCVisualManager는 컬러 정보를 가져 오는 몇 가지 방법을 제공합니다.

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

는 CMFCVisualManager에 대한 MSDN 문서를 살펴 보자.

좋은 제안,하지만 불행히도 그들은 단지 '회색, 현재 나는 스타일로 내 응용 프로그램을 실행하고있을 때 CMFCVisualManagerOffice2007 :: Office2007_LunaBlue이

성가 시게은 MSDN 도움말은 "건설"그래서 아무튼 다양한 음영을 반환 그들이 무엇을 해야하는지 알려주지 않습니다.

0

좋은 제안,하지만 불행히도 그들은 단지 현재 내가 스타일 CMFCVisualManagerOffice2007 :: Office2007_LunaBlue

CMFCVisualManagerOffice2007 :: GetTabFrameColors 내 응용 프로그램을 실행하고있을 때, 회색의 다양한 음영 반환 - clrFace 출력 PARAM 인을 회색?

아마 각 테마에 대한 단일 기본 색조 위에 모두 가면입니까? CMFCVisualManagerOffice2007 :: GetStyle()을 사용하여 어떤 색 구성표가 유효한지 결정할 수 있다고 가정하면 아마도 색조가 무엇인지 파악한 다음 GetxxxColor() 메서드를 사용하여 일부 마스킹을 수행 할 수 있습니다.

1

afxGlobalData에는 MFC 기능 팩에서 사용중인 현재 색, 브러쉬 및 글꼴에 대한 유용한 정보가 포함되어 있습니다. 특히 내 자신의 컨트롤 막대 배경을 칠할 때 afxGlobalData.m_clrBarFace을 사용합니다.

(위의 구문이 자리를 차지하지 않도록 직장 내 PC 앞에 없습니다.)