Especificar páginas de propiedades
Al crear un control ActiveX, a menudo querrá asociarlo a las páginas de propiedades que se pueden usar para establecer las propiedades del control. Los contenedores de control usan la interfaz ISpecifyPropertyPages
para averiguar qué páginas de propiedades se pueden usar para establecer las propiedades del control. Tendrá que implementar esta interfaz en el control.
Para implementar ISpecifyPropertyPages
con ATL, siga estos pasos:
Derive la clase de ISpecifyPropertyPagesImpl.
Agregue una entrada para
ISpecifyPropertyPages
al mapa COM de la clase.Agregue una entrada PROP_PAGE al mapa de propiedades para cada página asociada al control.
Nota:
Al generar un control estándar mediante el Asistente para controles ATL, solo tendrá que agregar las entradas PROP_PAGE al mapa de propiedades. El asistente genera el código necesario para los demás pasos.
Los contenedores que se comportan correctamente mostrarán las páginas de propiedades especificadas en el mismo orden que las entradas PROP_PAGE del mapa de propiedades. Por lo general, debe colocar entradas de página de propiedades estándar después de las entradas de las páginas personalizadas en el mapa de propiedades, para que los usuarios vean primero las páginas específicas del control.
Ejemplo
La siguiente clase para un control de calendario usa la interfaz ISpecifyPropertyPages
para indicar a los contenedores que sus propiedades se pueden establecer mediante una página de fecha personalizada y la página de color estándar.
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.