속성 페이지 지정
ActiveX 컨트롤을 만들 때 컨트롤의 속성을 설정하는 데 사용할 수 있는 속성 페이지와 연결하려는 경우가 많습니다. 컨트롤 컨테이너는 인터페이스를 ISpecifyPropertyPages
사용하여 컨트롤의 속성을 설정하는 데 사용할 수 있는 속성 페이지를 확인합니다. 컨트롤에서 이 인터페이스를 구현해야 합니다.
ATL을 사용하여 구현 ISpecifyPropertyPages
하려면 다음 단계를 수행합니다.
ISpecifyPropertyPagesImpl에서 클래스를 파생합니다.
클래스의 COM 맵에 대한
ISpecifyPropertyPages
항목을 추가합니다.컨트롤과 연결된 각 페이지의 속성 맵에 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.