OnPaint
을 재정의하는 CComboBox
하위 클래스가 포함 된 큰 MFC 응용 프로그램을 상속 받았습니다. 현재는 모든 도면을 손으로 (선과 직사각형으로) 처리하고 Windows 98 스타일로 보이는 콤보 상자를 렌더링합니다. 그러나, 그렇지 않으면 위대한 작품과 우리가 의존하는 많은 유용한 사용자 지정 기능을 제공하고, 전체 컨트롤을 다시 작성 아마 옵션이 아닙니다.MFC : 소유자 그리기를 위해 Aero 스타일 콤보 상자를 렌더링하는 방법?
OnPaint
은 가능한 경우 에어로 스타일로 그려지도록 현대화하고 싶습니다. (현대적인 테마를 사용할 수없는 경우 이전 코드로 되돌아갑니다). 단추와 같은 다른 사용자 지정 컨트롤을 사용하여이 작업을 수행했습니다. 마우스가 움직일 때의 부드러운 강조와 같이 제대로되지 않는 작은 행동이 있다는 것을 알고 있지만,이 앱에는 큰 문제가 아닙니다.
은 내가 CVisualStylesXP
ckass에 액세스 할 수 있으므로 (LoadLibrary
그래서 우리는 A 최소 시스템으로 Vista를 강요하지 않는다 통해) 이미 아주 쉽게 OpenThemeData
, GetThemeColor
또는 DrawThemeBackground
같은 통화를 할 수있는 인프라를 가지고있다. 불행히도, 테마에 맞는 테두리와 드롭 다운 버튼으로 멋진 모양의 콤보 상자를 얻으려는 호출 순서를 알지 못합니다.
누구든지 여기서 무엇을 해야할지 알고 계십니까?
정직하게 말하자면, 중간에 표시되는 텍스트 이외의 기본 콤보 상자처럼 보입니다. 그러나 나는 정말로 그것을 재구성하고 싶지 않습니다. – StilesCrisis
실제로 두 번째 생각에서 Droplist는 Dropdown과 비슷하게 보입니다. 기본적으로 사용자가 텍스트의 하위 집합을 입력 한 다음 목록에 필터링 된 결과가 표시됩니다. 드로 프로스트처럼 드로잉하는 것은 잘못된 것입니다. – StilesCrisis