다음을 통해 공유


속성 페이지 지정

ActiveX 컨트롤을 만들 때 컨트롤의 속성을 설정하는 데 사용할 수 있는 속성 페이지와 연결하려는 경우가 많습니다. 컨트롤 컨테이너는 인터페이스를 ISpecifyPropertyPages 사용하여 컨트롤의 속성을 설정하는 데 사용할 수 있는 속성 페이지를 확인합니다. 컨트롤에서 이 인터페이스를 구현해야 합니다.

ATL을 사용하여 구현 ISpecifyPropertyPages 하려면 다음 단계를 수행합니다.

  1. ISpecifyPropertyPagesImpl에서 클래스를 파생합니다.

  2. 클래스의 COM 맵에 대한 ISpecifyPropertyPages 항목을 추가합니다.

  3. 컨트롤과 연결된 각 페이지의 속성 맵에 PROP_PAGE 항목을 추가합니다.

참고 항목

ATL 컨트롤 마법사를 사용하여 표준 컨트롤을 생성하는 경우 속성 맵에 PROP_PAGE 항목만 추가하면 됩니다. 마법사는 다른 단계에 필요한 코드를 생성합니다.

잘 동작하는 컨테이너는 속성 맵의 PROP_PAGE 항목과 동일한 순서로 지정된 속성 페이지를 표시합니다. 일반적으로 사용자가 컨트롤과 관련된 페이지를 먼저 볼 수 있도록 속성 맵에서 사용자 지정 페이지의 항목 앞에 표준 속성 페이지 항목을 배치해야 합니다.

예시

달력 컨트롤에 대한 다음 클래스는 인터페이스를 ISpecifyPropertyPages 사용하여 사용자 지정 날짜 페이지 및 주식 색 페이지를 사용하여 속성을 설정할 수 있음을 컨테이너에 알릴 수 있습니다.

class ATL_NO_VTABLE CMyCtrl :
   OtherInterfaces
   public ISpecifyPropertyPagesImpl<CMyCtrl>
{
public:

BEGIN_COM_MAP(CMyCtrl)
   OtherComMapEntries
   COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
END_COM_MAP()

BEGIN_PROP_MAP(CMyCtrl)
   OtherPropMapEntries
   PROP_PAGE(CLSID_DatePage)
   PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()

   // Remainder of class declaration omitted.

참고 항목

속성 페이지
ATLPages 샘플