2013-04-14 6 views
2

대화 상자 프로젝트를 만들고 버튼에 색상을 지정하려고 MFC를 사용하고 있습니다.네이티브 win7 모양의 MFC 색상 버튼

내가 할 수있는 유일한 방법은 버튼 소유자를 그리는 것입니다. 버튼에 대해 OnCtlColor()이 작동하지 않습니다.

OnDrawItem을 덮어 쓸 수있는 색을 칠 수 있지만 문제는 프로세스에서 3D 멋진 모양 (Win7에서 약간 둥근 모서리가 있음)이 손실된다는 것입니다.

기본 모양을 유지하고 그 위에 버튼 색상을 지정하는 방법이 있습니까?

답변

2

이것은 간단한 작업이 아닙니다. 주제별 컨트롤 (원하는 것)을 사용하는 한 테마에서 허용하는 것 이상을 수행 할 수 없습니다.

테마 그림을 가능한 한 많이 사용하면서 자신 만의 단추 그림을 다시 구현해야하지만 색상은 살짝 들어 있어야합니다.

당신이 Button.BackColor 설정할 때 거의 무슨 .NET 윈폼보다 더 나은 무엇을 달성 할 수 없다

비록 노트 :

enter image description here

참조를 윈폼을 분해 또한 질문 how to set Button BackColor?

ButtonStandardAdapter.PaintWorker 줄 것이다 당신은 당신이 사용해야 할 몇 가지 아이디어와 API를 가지고 있습니다. 조심해라, 코딩을 많이해야한다!

C++/MFC 코드의 경우 CodeProject에서 Vista themed Owner-Drawn and Full-Custom Push/Menu/Image Buttons을 확인하십시오. 아마도 실제로 무엇을 원하는지 (SetBackgroundColor 메쏘드) 이미 재사용 할 수 있습니다.

+0

유용한 링크를 제공해 주셔서 감사합니다. 나는 그들이 동일한 도움이 될 수 있는지를 살펴볼 것입니다. – user1624807

+0

당신은 천만에요. 그것이 당신을 도운다면 대답을 수락하십시오 :) –