Office 2007 스타일에서 MFC 기능 팩을 사용할 때 어떤 색상이 사용되는지 알아보세요.

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

  •  08-06-2019
  •  | 
  •  

문제

Microsoft가 Visual Studio 2008용으로 출시한 "MFC 기능 팩"을 사용하도록 레거시 C++ 코드 중 일부를 업데이트하고 있습니다.우리는 새 클래스를 사용하여 CFrameWndEx에서 응용 프로그램을 파생시켰으며 Office 2007 스타일을 적용하여 응용 프로그램을 더욱 현대적인 모양으로 만들고 있습니다.이를 통해 그라데이션으로 채워진 창 제목, 상태 표시줄 등이 제공되고 리본 도구 모음을 사용할 수 있습니다.

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

문서와 웹을 검색했지만 아직 아무것도 찾지 못했습니다.이 정보를 찾는 방법을 아는 사람이 있나요?

[편집하다]

특히 런타임에 어떤 색상이 사용되는지 알아내야 합니다.새로운 정적 함수 CMFCVisualManager::SetDefaultManager를 사용하여 런타임 시 애플리케이션의 모양을 변경할 수 있습니다.

다음 msdn 페이지에서는 사용 가능한 스타일 종류, 특히 Office2007 모양을 보여줍니다.msdn에 링크

도움이 되었습니까?

해결책

MFC 소스 코드를 살펴보셨나요? 다음과 같은 내용을 찾을 수 있습니다.

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

다른 팁

CMFCVisualManager는 색상 정보를 얻기 위한 여러 가지 방법을 제공하는 것 같습니다.

cmfcvisualManager :: getSmartDockingBaseGuideColors () cmfcvisualManager :: getToolbarhighlightColor ()

CMFCVisualManager에 대한 MSDN 문서를 살펴보세요.

좋은 제안이지만 불행히도 현재 CMFCVisualManagerOffice2007::Office2007_LunaBlue 스타일로 응용 프로그램을 실행하는 경우 다양한 회색 음영만 반환됩니다.

짜증나게도 msdn 도움말은 "작업 중"이므로 그들이 무엇을 해야 하는지조차 알려주지 않습니다!

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

(저는 업무용 PC 앞에 있지 않기 때문에 위의 구문이 정확하지 않습니다.)

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

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

이것이 본질적으로 제가 지금 하고 있는 일이며, 색상을 추출하는 상수 목록을 정의했습니다.그래도 별로 고급스러워 보이지는 않네요!

CMFCVisualManager는 색상 정보를 얻기 위한 여러 가지 방법을 제공하는 것 같습니다.

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

CMFCVisualManager에 대한 MSDN 문서를 살펴보세요.

@GateKiller, OP는 Office 2007 추가 기능을 개발하지 않으므로 UI ​​지침은 실제로 도움이 되지 않습니다.다음을 사용하는 MFC 응용 프로그램입니다. Visual C++ 2008 기능 팩 이를 통해 MFC 앱은 Office 2007의 모양과 느낌을 가질 수 있습니다.

좋은 제안이지만 불행히도 현재 CMFCVisualManagerOffice2007::Office2007_LunaBlue 스타일로 응용 프로그램을 실행하는 경우 다양한 회색 음영만 반환됩니다.

CMFCVisualManagerOffice2007::GetTabFrameColors - clrFace 출력 매개변수가 회색입니까?

아마도 그들은 각 테마에 대한 단일 기본 색상 위에 모두 마스크가 있는 것일까요?CMFCVisualManagerOffice2007::GetStyle()을 사용하여 어떤 색 구성표가 적용되는지 확인할 수 있다고 가정하면 해당 색상이 무엇인지 파악한 다음 GetxxxColor() 메서드를 사용하여 일부 마스킹을 수행할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top