테마 (시각적 스타일)가 발명되기 전에 컨트롤이 1990 년대에 되돌아 보았던 방식입니다. 당신이 알아 차렸 듯이, 현대의 버튼은 그라데이션과 욱신 거리는 소리와 함께 모든 팬시 팬츠에 그려져 있습니다. 그러나 하위 호환성을 위해 은 컨트롤이 해당 치료를 받도록에게 요청해야합니다. 그렇지 않으면 레거시 스타일로 되돌아갑니다.
매니페스트를 지정하면됩니다. 응용 프로그램의 루트 디렉토리에 일반 텍스트 형식으로 추가하거나 Visual Studio (2005 이상)에서 EXE에 자동으로 포함시킬 수 있습니다.
두 번째 경로는 내가가는 길입니다. 당신이 당신의 프로젝트를 빌드시 자동으로 매니페스트를 추가 할 컴파일러에 알려 당신의 stdafx.h
파일에 다음 코드를 추가합니다 :
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
This MSDN article 당신이 원하는 그 어느 것보다 시각적 스타일에 대한 자세한 정보가 있습니다.
응용 프로그램을 실제로 보이게하려면 기본 창에 사용되는 배경 브러시를 변경해야합니다. 기본적으로 텍스트 상자의 배경 (흰색)과 같은 색을 사용하도록 설정되어 있습니다.
대신 3D 컨트롤을 페인트하는 데 사용되는 색상을 사용하고 싶습니다. 여기에 그림과 같이 WNDCLASS
(또는 WNDCLASSEX
) 구조의 hbrBackground
멤버 수정 :
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
을 왜 하나를 추가해야합니까? 이전 버전과의 호환성을 위해 다시. 세부 사항은 지루합니다. :-)
덕분에 빠른 응답을위한 많은! 자, 내 애플 리케이션은 내가 원하는 것처럼 정확하게 찾고있다. –