Especificar las páginas de propiedades
Cuando crea un control ActiveX, con frecuencia deseará para asociarlo a las páginas de propiedades que se pueden utilizar para establecer las propiedades del control.Los contenedores de controles utilizan la interfaz de ISpecifyPropertyPages para comprobar que las páginas de propiedades se pueden utilizar para establecer las propiedades del control.Deberá implementar esta interfaz en el control.
Para implementar ISpecifyPropertyPages mediante ATL, siga estos pasos:
derive la clase de ISpecifyPropertyPagesImpl.
Agregue una entrada para ISpecifyPropertyPages al mapa COM de la clase.
Agregue una entrada de PROP_PAGE al mapa de propiedades para cada página asociado al control.
[!NOTA]
Al generar un control estándar mediante Asistente para controles ATL, tendrá que agregar las entradas de PROP_PAGE a la asignación de la propiedad.El asistente genera el código necesario para los demás pasos.
Los buenos contenedores mostrará las páginas de propiedades especificadas en el mismo orden que las entradas de PROP_PAGE en el mapa de propiedades.Normalmente, debe colocar entradas estándar de la página de propiedades después de que las entradas para las páginas personalizadas en el mapa de propiedades, de modo que los usuarios vean las páginas específicas del control primero.
Ejemplo
La clase siguiente para un control de calendario utiliza la interfaz de ISpecifyPropertyPages para indicar a contenedores que sus propiedades se pueden establecer mediante una página personalizada de la fecha y la página en color común.
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.