다음을 통해 공유


속성 표시 눈금

속성 창에는 그리드 내의 필드가 표시됩니다. 왼쪽 열에는 속성 이름이 포함됩니다. 오른쪽 열에 속성 값이 포함됩니다.

표 작업

두 열 목록에는 디자인 타임에 변경할 수 있는 구성 독립적 속성과 현재 설정이 표시됩니다. 모든 속성이 표시되지 않을 수 있습니다. 예를 들어 메서드를 구현하여 속성을 숨김으로 설정할 수 있습니다 HideProperty . 특히 자식 속성이 있는 속성을 숨기려면 다음을 수행합니다.

  1. 매개 변수를 pfDisplay .로 DisplayChildPropertiesFALSE 설정합니다.

  2. 매개 변수를 pfHide .로 HidePropertyTRUE 설정합니다.

속성 창에 정보를 푸시하기 위해 IDE는 .를 사용합니다ISelectionContainer. ISelectionContainer속성 창에 표시할 관련 속성이 있는 선택 가능한 개체를 포함하는 각 창에 대해 VSPackages에 의해 호출됩니다. __VSHPROPID 사용하는 솔루션 탐색기의ISelectionContainer 호출 GetProperty 구현입니다. 프로젝트 계층 구조에서 VSHPROPID_BrowseObject 계층 구조에서 검색 가능한 개체를 가져옵니다.

VSPackage가 __VSHPROPID 지원하지 않는 경우 VSHPROPID_BrowseObject IDE는 __VSHPROPID 값을 사용하여 사용 GetProperty 하려고 시도합니다 . 계층 항목 또는 항목이 제공하는 VSHPROPID_SelContainer.

프로젝트 VSPackage를 구현하는 IDE 제공 창 패키지(예: ISelectionContainer)가 대신 생성 되므로 프로젝트 VSPackage를 만들 ISelectionContainer 필요가 없습니다.

ISelectionContainer 는 IDE에서 호출되는 세 가지 메서드로 구성됩니다.

  • CountObjects 에는 속성 창에 표시할 개체 수가 포함됩니다.

  • GetObjectsIDispatch속성 창에 표시되도록 선택된 개체를 반환합니다.

  • SelectObjects 를 사용하면 사용자가 반환한 GetObjects 개체를 선택할 수 있습니다. 이를 통해 VSPackage는 UI에서 사용자에게 표시되는 선택을 시각적으로 업데이트할 수 있습니다.

속성 창은 검색할 속성을 검색하기 위해 개체에서 IDispatch 정보를 추출합니다. 속성 브라우저를 사용하여 IDispatch 개체에서 가져온 쿼리를 ITypeInfo통해 지원하는 속성을 개체에 묻습니다 IDispatch::GetTypeInfo. 그런 다음 브라우저는 이러한 값을 사용하여 속성 창을 채우고 표에 표시되는 개별 속성의 값을 변경합니다. 속성 정보는 개체 자체 내에서 유지 관리됩니다.

반환된 개체가 지원 IDispatch되므로 호출자는 원하는 정보를 나타내는 미리 정의된 DISPID(디스패치 식별자)를 호출 IDispatch::Invoke 하거나 ITypeInfo::Invoke 호출하여 개체 이름과 같은 정보를 가져올 수 있습니다. 선언된 DISPID는 사용자 정의 식별자와 충돌하지 않도록 하기 위해 음수입니다.

속성 창에는 선택한 개체의 특정 속성 특성에 따라 다양한 유형의 필드가 표시됩니다. 이러한 필드에는 편집 상자, 드롭다운 목록 및 사용자 지정 편집기 대화 상자에 대한 링크가 포함됩니다.

  • 열거형 목록에 포함된 값은 GetObjects 쿼리에서 검색됩니다 IDispatch. 열거형 목록에서 가져온 값은 필드 이름을 두 번 클릭하거나 값을 클릭하고 드롭다운 목록에서 새 값을 선택하여 속성 표에서 변경할 수 있습니다. 열거된 목록에서 미리 정의된 설정이 있는 속성의 경우 속성 목록에서 속성 이름을 두 번 클릭하면 사용 가능한 선택 항목이 순환됩니다. true/false와 같은 두 가지 선택 항목만 있는 미리 정의된 속성의 경우 속성 이름을 두 번 클릭하여 선택 항목 간에 전환합니다.

  • HasDefaultValue값이 변경되었음을 나타내는 값인 경우 false 값은 굵은 텍스트로 표시됩니다. CanResetPropertyValue 는 값을 원래 값으로 다시 설정할 수 있는지 확인하는 데 사용됩니다. 이 경우 값을 마우스 오른쪽 단추로 클릭하고 표시된 메뉴에서 다시 설정을 선택하여 기본값으로 다시 변경할 수 있습니다. 그렇지 않으면 수동으로 값을 다시 기본값으로 변경해야 합니다. IVsPerPropertyBrowsing 또한 디자인 타임에 표시되는 속성의 이름을 지역화하고 숨길 수 있지만 런타임에 표시되는 속성 이름에는 영향을 주지 않습니다.

  • 줄임표(...) 단추를 클릭하면 사용자가 선택할 수 있는 속성 값 목록(예: 색 선택기 또는 글꼴 목록)이 표시됩니다. IProvidePropertyBuilder 는 이러한 값을 제공합니다.

참고하십시오