2009-09-23 4 views
4

대화 상자 응용 프로그램에서 Vista 스타일로 CMFCButton을 표시 할 수 없습니다. MFC 기능 팩 VS2008 사용하고 있습니다. 여기 Vista 스타일의 CMFCButton

내 문제 재현하는 몇 가지 단계는 다음과 같습니다

  • 새로운 MFC 프로젝트 만들기를;
  • 대화 상자 기반 프로젝트를 지정하십시오.
  • 메인 대화 상자에 두 개의 버튼을 추가하십시오.
  • 각 버튼에 대한 변수를 추가하십시오. 변수 중 하나를 CButton으로 만들고, 다른 하나는 CMFCButton으로 만듭니다.
  • 컴파일하고 실행하십시오. test app picture http://img7.imageshack.us/img7/3/testapp.png

    당신이 볼 수 있듯이

의를 CButton 올바른 스타일을 가지고 있지만, CMFCButton하지 않습니다.

내가 여기에 누락 되었습니까?

답변

7

CMFCButton은 기본적으로 설정 BS_OWNERDRAW 스타일을 가지고 - 당신이 당신의 대화의 OnInitDialog()에서 제거 할 수 있습니다 : 쓸모없는 렌더링되는 소유자가 CMFCButton의 많은 메소드 스타일의 결과를 그릴 제거, 그러나

mfcButton.ModifyStyle(BS_OWNERDRAW, 0, 0); 

(예 : SetTextColor). 당신은 시각적 관리자 설정에 의해 현재의 윈도우 테마를 사용하여 렌더링 버튼을 얻을 수 있습니다 :

CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); 

이 위 대신 ModifyStyle의 수행을 기본 스타일에 맞게 버튼의 결과로 여전히 새로운 렌더링 기능을 가지고 있습니다 .

+0

감사합니다. 문제가 해결되었습니다. 그러나 이것은 텍스트 색상 변경과 같은 CMFCButton 고유 기능에 액세스 할 수 없다는 뜻입니까? – djeidot

+0

좋은 지적 - 다른 방법으로 밝혀졌습니다. –

+0

그게 다예요. 고마워요. – djeidot