Usar hojas de propiedades en una aplicación
Para usar una hoja de propiedades en la aplicación, complete los pasos siguientes:
Cree un recurso de plantilla de diálogo para cada hoja de propiedades. Tenga en cuenta que el usuario puede cambiar de una página a otra, por lo que debe diseñar cada página de la forma más coherente posible.
Las plantillas de diálogo de todas las páginas no tienen que tener el mismo tamaño. El marco usa el tamaño de la página más grande para determinar cuánto espacio se va a asignar en la hoja de propiedades de las páginas de propiedades.
Al crear el recurso de plantilla de diálogo para una hoja de propiedades, debe especificar los siguientes estilos en la hoja de propiedades del diálogo:
Establezca el cuadro de edición Título de la página General en el texto que desea que aparezca en la pestaña de esta página.
Establezca el cuadro de lista Estilo de la página Estilos en Secundario.
Establezca el cuadro de lista Borde de la página Estilos en Fino.
Asegúrese de que la casilla Barra de título de la página Estilos está seleccionada.
Asegúrese de que la casilla Deshabilitado de la página Más estilos esté seleccionada.
Cree una clase derivada de CPropertyPage correspondiente a cada plantilla de cuadro de diálogo de la hoja de propiedades. Consulte Agregar una clase. Elija
CPropertyPage
como la clase base.Cree variables de miembro para contener los valores de esta hoja de propiedades. El proceso para agregar variables miembro a una hoja de propiedades es exactamente el mismo que para agregar variables miembro a un cuadro de diálogo, ya que una hoja de propiedades es un cuadro de diálogo especializado. Para obtener más información, consulte Definición de variables miembro para controles de cuadro de diálogo.
Construya un objeto CPropertySheet en el código fuente. Normalmente, se crea el objeto
CPropertySheet
en el controlador para el comando que muestra la hoja de propiedades. Este objeto representa toda la hoja de propiedades. Si crea una hoja de propiedades modal con la función DoModal, el marco proporciona tres botones de comando de forma predeterminada: Aceptar, Cancelar y Aplicar. El marco no crea botones de comando para hojas de propiedades no modales creadas con la función Crear. No es necesario derivar una clase deCPropertySheet
a menos que desee agregar otros controles (como una ventana de vista previa preliminar) o mostrar una hoja de propiedades no modales. Este paso es necesario para las hojas de propiedades no modales porque no contienen ningún control predeterminado que se pueda usar para cerrar la hoja de propiedades.Para cada página que se va a agregar a la hoja de propiedades, haga lo siguiente:
Construya un objeto para cada clase derivada de
CPropertyPage
que creó anteriormente en este proceso.Llame a CPropertySheet::AddPage para cada página.
Normalmente, el objeto que crea
CPropertySheet
también crea los objetosCPropertyPage
en este paso. Sin embargo, si implementa una clase derivada deCPropertySheet
, puede insertar los objetosCPropertyPage
en el objetoCPropertySheet
y llamar aAddPage
para cada página desde el constructor de clase derivada deCPropertySheet
.AddPage
agrega el objetoCPropertyPage
a la lista de la hoja de propiedades de las páginas, pero no crea realmente la ventana para esa página. Por lo tanto, no es necesario esperar hasta la creación de la ventana de hoja de propiedades para llamar aAddPage
; puede llamar aAddPage
desde el constructor de la hoja de propiedades.De forma predeterminada, si una hoja de propiedades tiene más pestañas de las que caben en una sola fila de la hoja de propiedades, las pestañas se apilan en varias filas. Para deshabilitar la apilación, llame a CPropertySheet::EnableStackedTabs con el parámetro establecido en FALSE. Debe llamar a
EnableStackedTabs
cuando cree la hoja de propiedades.Llame a CPropertySheet::D oModal o Crear para mostrar la hoja de propiedades. Llame a
DoModal
para crear una hoja de propiedades como un cuadro de diálogo modal. Llame a Crear para crear la hoja de propiedades como un cuadro de diálogo no modal.Intercambie datos entre las páginas de propiedades y el propietario de la hoja de propiedades. Esto se explica en el artículo Intercambiar datos.
Para obtener un ejemplo de cómo usar hojas de propiedades, consulte el ejemplo general de MFC PROPDLG.