Compartir a través de


Controles ActiveX de MFC: Agregar otra página de propiedades personalizadas

En ocasiones, un control ActiveX tendrá más propiedades que puede razonablemente quepa en una página de propiedades.En este caso, puede agregar páginas de propiedades al control ActiveX para mostrar estas propiedades.

En este artículo se abordan agregar nuevas páginas de propiedades a un control ActiveX que ya tiene por lo menos una página de propiedades.Para obtener más información sobre las páginas de propiedades de la acción de suma (fuente, imagen, o color), vea el artículo Controles ActiveX de MFC: Utilizando las páginas de propiedades comunes.

Los procedimientos siguientes utilizan un marco del control ActiveX del ejemplo creado por el asistente para controles ActiveX.Por consiguiente, los nombres de clase y los identificadores son únicos en este ejemplo.

Para obtener más información sobre cómo utilizar las páginas de propiedades de un control ActiveX, vea los artículos siguientes:

Para insertar una nueva plantilla de página de propiedades del proyecto

  1. Con el proyecto de control abierta, abra la vista de recursos en el área de trabajo de un proyecto.

  2. Haga clic con el botón secundario en la vista de recursos para abrir el menú contextual y haga clic Agregar recurso.

  3. Expanda el nodo de Dialog , y seleccione IDD_OLE_PROPPAGE_SMALL.

  4. Haga clic en New para agregar el recurso al proyecto.

  5. Seleccione la nueva plantilla de página de propiedades para actualizar la ventana Propiedades.

  6. Escriba un nuevo valor para la propiedad de **Id.**Este ejemplo utiliza IDD_PROPPAGE_NEWPAGE.

  7. En la barra de herramientas, haga clic en Guardar.

Para asociar la nueva plantilla con una clase

  1. Vista abrir de la clase.

  2. Haga clic con el botón secundario en la vista de clases para abrir el menú contextual.

  3. En el menú contextual, haga clic en Agregar y, después, en Agregar clase.

    Se abre el cuadro de diálogo de Agregar clase .

  4. Haga doble clic en la plantilla de MFC Class .

  5. En el cuadro de Nombre de clase en Asistente para clases MFC, escriba un nombre para la nueva clase de diálogo.(En este ejemplo, CAddtlPropPage.)

  6. Si desea que los nombres de archivo de los cambios, haga clic en Cambiar.Escriba los nombres de su implementación y archivos de encabezado, o acepte los nombres predeterminados.

  7. En el cuadro de Base Class , seleccione COlePropertyPage.

  8. En el cuadro de Dialog ID , seleccione IDD_PROPPAGE_NEWPAGE.

  9. Haga clic Finalizar para crear la clase.

Para permitir el acceso de los usuarios del control en esta nueva página de propiedades, realice los cambios siguientes a la sección de macro de los id. de la página de propiedades del control (ubicada en el archivo de implementación del control):

BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
   PROPPAGEID(CMyAxUIPropPage::guid)
   PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)

Observe que debe aumentar el segundo parámetro de la macro de BEGIN_PROPPAGEIDS (el número) de la página de propiedades comprendidos entre 1 y 2.

También debe modificar el archivo del archivo de implementación del control (.CPP) para incluir el encabezado (. h) archivo de la nueva clase de la página de propiedades.

El paso siguiente consiste en crear de dos nuevos recursos de cadena que proporcionan un nombre de tipo y una leyenda para la nueva página de propiedades.

Para agregar nuevos recursos de cadena a una página de propiedades

  1. Con el proyecto de control abierta, abra la vista de recursos.

  2. Haga doble clic en la carpeta de Tabla de cadenas y haga doble clic en el recurso de la tabla de cadenas al que desea agregar una cadena.

    Esto abre la tabla de cadenas en una ventana.

  3. Seleccione la línea en blanco al final de la tabla de cadenas y escriba el texto, o la leyenda, string: por ejemplo, “página de propiedades adicional”.

    Esto abre una página de String Properties que muestra Caption y cuadros de **Id.**El cuadro de Caption contiene la cadena especificado.

  4. En el cuadro de Id. , seleccione o escriba un identificador para la cadena.Presione Entrar cuando termine.

    Este ejemplo utiliza IDS_SAMPLE_ADDPAGE para el nombre de tipo de la nueva página de propiedades.

  5. Repita los pasos 3 y 4 utilizando IDS_SAMPLE_ADDPPG_CAPTION para el identificador y la página adicional de la propiedad” para la leyenda.

  6. En el archivo de .CPP de la nueva clase de la página de propiedades (en este ejemplo, CAddtlPropPage) modifique CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry de modo que IDS_SAMPLE_ADDPAGE se pasa por AfxOleRegisterPropertyPageClass, como en el ejemplo siguiente:

    BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister)
    {
       if (bRegister)
          return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
             m_clsid, IDS_SAMPLE_ADDPAGE);
       else
          return AfxOleUnregisterClass(m_clsid, NULL);
    }
    
  7. Modifique el constructor de CAddtlPropPage para pasar IDS_SAMPLE_ADDPPG_CAPTION al constructor de COlePropertyPage , como sigue:

    CAddtlPropPage::CAddtlPropPage() :
       COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION)
    {
    
    }
    

Después de haber creado que las modificaciones necesarias recompilen el contenedor de prueba del uso de probar la nueva página de propiedades.Vea Probar propiedades y eventos con Test Container para obtener información sobre cómo tener acceso a Test Container.

Vea también

Conceptos

Controles ActiveX de MFC