2008-10-20 3 views
10

OpenThemeData (msdn OpenThemeData 참조) 함수를 호출하려고했으나 pszClassList 매개 변수로 전달할 수있는 클래스 이름이 무엇인지 확인할 수 없습니다.OpenThemeData 함수에 사용할 수있는 클래스는 무엇입니까?

HTHEME OpenThemeData(  
    HWND hwnd, 
    LPCWSTR pszClassList 
); 

는 아무도 내가 그 매개 변수로 전달할 수 있습니다 허용 클래스 이름이 무엇을 말해 주시겠습니까? 감사합니다.

답변

5

"AeroStyle.xml"을 Vista/Aero의 정확한 목록을 제공하는 이전 포스터로 볼 수 있습니다. 그러나 안전을 원한다면 클래스 이름은 일반적으로 Windows 공용 컨트롤의 Windows 클래스 이름이어야합니다. 예를 들어 푸시 버튼과 체크 박스는 클래스 이름 "버튼", 편집 컨트롤 "편집"등을 사용합니다. 일반적으로 작업중인 사용자 정의 요소와 가장 가까운 컨트롤의 클래스 이름을 선택하고 테마 데이터. 그렇게하면 사용자가 선택한 테마가 실제로 무엇인지에 관계없이 XP, Vista 및 (잘하면) Windows 7에서 작동하는 코드를 얻을 수 있습니다.

그러나 원시 Win32를 많이 사용하지 않으면 클래스 이름을 직접 사용하여 많은 컨트롤을 만들지 않을 것입니다. 클래스 이름은 MSDN 전체에 뿌리 내리고 있습니다. 시작하기 좋은 곳은 대개 Platform SDK의 "CommCtrl.h"파일입니다.이 파일에는 많은 공통점이 있으며, 일반적으로 개별적인 공통 컨트롤에 대한 MSDN 도움말에 설명되어 있습니다. 텍스트 편집기에서 대화 상자를 열어서 대화 상자가 .rc 파일에 정의되는 방법을 살펴 봄으로써 이들을 배울 수도 있습니다.이 대화 상자에는 컨트롤의 클래스 이름이 들어 있습니다.

4

클래스 이름은 테마에 따라 다릅니다. 예를 들어, OpenThemeData 상태의 문서로 : 에어로 테마

클래스 이름 는 Microsoft Windows 소프트웨어 개발 키트의 포함 폴더에 입니다 AeroStyle.xml (SDK)에 정의되어 있습니다 .

0

XP에서 종료되지 않는 Aero와는 아무런 관련이 없습니다!

+0

Aero는 테마가 지원하는 다양한 클래스 이름에 대한 자세한 정보를 찾는 예제로 제공됩니다. 아무 것도 지정되지 않은 연결을 암시해서는 안됩니다. –

10

MSDN에 문서 Parts and States컨트롤 클래스, 부품 상태를 표시하는 테이블을 포함 OpenThemeData() ...의 소스 코드를 참조. 표의 값은 Vsstyle.hVssym32.h에 정의되어 있습니다. 여기

은 빠른 참조입니다 :

BUTTON, CLOCK, COMBOBOX, COMMUNICATIONS, CONTROLPANEL, DATEPICKER, DRAGDROP, 
EDIT, EXPLORERBAR, FLYOUT, GLOBALS, HEADER, LISTBOX, LISTVIEW, MENU, MENUBAND, 
NAVIGATION, PAGE, PROGRESS, REBAR, SCROLLBAR, SEARCHEDITBOX, SPIN, STARTPANEL, 
STATUS, TAB, TASKBAND, TASKBAR, TASKDIALOG, TEXTSTYLE, TOOLBAR, TOOLTIP, 
TRACKBAR, TRAYNOTIFY, TREEVIEW, WINDOW 

질문 Windows Visual Themes: Gallery of Parts and States?"부품 및 미국 탐색기"를 제공 당신이 스타일의 대부분을 검색하고 테스트 할 수 응용 프로그램에 대한 답변.

관련 문제