문제

단일 프로세스에 대해 일반 Win32 메뉴 (배경, 텍스트 및 하이라이트)가 사용하는 색상을 변경하는 방법이 있습니까? 없이 setsyscolors 사용?

(SetSyScolors는 글로벌 변화를 수행합니다. 이는 나쁘고, 종료하기 전에 SetSysColors로 다시 색상을 다시 설정하는 것을 잊어 버리면 로그 아웃 할 때까지 복원되지 않습니다.)

도움이 되었습니까?

해결책

내가 Rob에 대한 귀하의 의견을 믿는다면, 특별한 외관과 느낌으로 피부가 적용되는 적용입니다. 따라서 Ferek이 지적한 것처럼 (비우호적 인 방식으로 ...) 소유자 메뉴를 사용하는 것처럼가는 길은 아마도 아마도 갈 것입니다. 당신은 그들의 외모를 정확하게 정의 할 수있을 것입니다.

다른 팁

setmenuinfo () API는 친구입니다. 메뉴의 배경을 페인트하기 위해 브러시를 적용 할 수 있습니다.

이 라인을 따라 무언가가 문제를 해결해야합니다.

MENUINFO mi = { 0 }; 
mi.cbSize = sizeof(mi); 
mi.fMask = MIM_BACKGROUND|MIM_APPLYTOSUBMENUS; 
mi.hbrBack = hBrush; 

HMENU hMenu = ::GetMenu(hWnd); 
SetMenuInfo(hMenu, &mi); 

물어봐야하는 이유는 무엇입니까? 일반적인 Windows 모양과 느낌을 채택하는 것이 좋습니다. 이는 사용자가 사용자 인터페이스에 일관된 요소가 있다고 확신 할 수 있으며, 이는 플랫폼에 다른 소프트웨어를 사용하여 경험을 매핑 할 수 있습니다.

물론 나는 아마도 개종자들에게 전파하고있을 것입니다. 그러나 나는 이것에 대한 답을 읽는 사람이라면 모든 메뉴 스카이 블루 핑크를 만들기 시작하지 않기 때문에 요점을 만들겠다고 생각했습니다.

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