Compartir a través de


CMFCPropertySheet (clase)

La clase CMFCPropertySheet admite una hoja de propiedades donde cada página de propiedades se indica mediante una pestaña de página, un botón de barra de herramientas, un nodo del control de árbol o un elemento de lista.

Sintaxis

class CMFCPropertySheet : public CPropertySheet

Miembros

Constructores públicos

Nombre Descripción
CMFCPropertySheet::CMFCPropertySheet Construye un objeto CMFCPropertySheet.
CMFCPropertySheet::~CMFCPropertySheet Destructor.

Métodos públicos

Nombre Descripción
CMFCPropertySheet::AddPage Agrega una página a la hoja de propiedades.
CMFCPropertySheet::AddPageToTree Agrega una nueva página de propiedades al control de árbol.
CMFCPropertySheet::AddTreeCategory Agrega un nuevo nodo al control de árbol.
CMFCPropertySheet::EnablePageHeader Reserva espacio en la parte superior de cada página para dibujar un encabezado personalizado.
CMFCPropertySheet::GetHeaderHeight Recupera el alto del encabezado actual.
CMFCPropertySheet::GetLook Recupera un valor de enumeración que especifica el aspecto de la hoja de propiedades actual.
CMFCPropertySheet::GetNavBarWidth Recupera el ancho de la barra de navegación, en píxeles.
CMFCPropertySheet::GetTab Recupera el objeto de control de la pestaña interna que admite el control de la hoja de propiedades actual.
CMFCPropertySheet::GetThisClass Lo usa el marco para obtener un puntero al objeto CRuntimeClass asociado a este tipo de clase.
CMFCPropertySheet::InitNavigationControl Inicializa el aspecto del control de la hoja de propiedades actual.
CMFCPropertySheet::OnActivatePage Lo llama el marco de trabajo cuando se ha habilitado una página de propiedades.
CMFCPropertySheet::OnDrawPageHeader Lo llama el marco de trabajo para dibujar un encabezado de la página de propiedades personalizada.
CMFCPropertySheet::OnInitDialog Controla el mensaje WM_INITDIALOG. (Invalida CPropertySheet::OnInitDialog).
CMFCPropertySheet::OnRemoveTreePage Lo llama el marco de trabajo para quitar una página de propiedades de un control de árbol.
CMFCPropertySheet::PreTranslateMessage Traduce los mensajes de ventana antes de enviarlos a las funciones de Windows TranslateMessage y DispatchMessage. (Invalida CPropertySheet::PreTranslateMessage).
CMFCPropertySheet::RemoveCategory Quita un nodo del control de árbol.
CMFCPropertySheet::RemovePage Quita una página de propiedades de la hoja de propiedades.
CMFCPropertySheet::SetIconsList Especifica la lista de imágenes que se usan en el control de navegación del panel de Outlook.
CMFCPropertySheet::SetLook Especifica el aspecto de la hoja de propiedades.

Comentarios

La clase CMFCPropertySheet representa hojas de propiedades, también conocidas como cuadros de diálogo de pestaña. La clase CMFCPropertySheet puede mostrar una página de propiedades de varias formas.

Realice los pasos siguientes para usar la clase CMFCPropertySheet en la aplicación:

  1. Derive una clase de la clase CMFCPropertySheet y llámela, por ejemplo, CMyPropertySheet.

  2. Construya un objeto CMFCPropertyPage para cada página de propiedades.

  3. Llame al método CMFCPropertySheet::SetLook del constructor CMyPropertySheet. Un parámetro de ese método especifica que las páginas de propiedades se mostrarán como pestañas a lo largo de la parte superior o izquierda de la hoja de propiedades, como pestañas en el estilo de una hoja de propiedades de Microsoft OneNote, como botones en un control de barra de herramientas de Microsoft Outlook, como nodos en un control de árbol o como una lista de elementos en el lado izquierdo de la hoja de propiedades.

  4. Si crea una hoja de propiedades en el estilo de una barra de herramientas de Microsoft Outlook, llame al método CMFCPropertySheet::SetIconsList para asociar una lista de imágenes junto con las páginas de propiedades.

  5. Llame al método CMFCPropertySheet::AddPage para cada página de propiedades.

  6. Cree un control CMFCPropertySheet y llame a su método DoModal.

Ilustraciones

La siguiente ilustración muestra una hoja de propiedades que se encuentra en el estilo de una barra de herramientas incrustada de Microsoft Outlook. La barra de herramientas de Outlook aparece en el lado izquierdo de la hoja de propiedades.

Controles de color CMFCPropertySheet.

La siguiente ilustración muestra una hoja de propiedades que contiene un objeto CMFCPropertyGridCtrl (clase). Ese objeto es una hoja de propiedades del estilo de una hoja de propiedades de controles comunes estándar.

Controles de propiedad y lista cmFCPropertySheet.

La siguiente ilustración muestra una hoja de propiedades que se encuentra en el estilo de un control de árbol.

Árbol de propiedades.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCPropertySheet

Requisitos

Encabezado: afxpropertysheet.h

CMFCPropertySheet::AddPage

Agrega una página a la hoja de propiedades.

void AddPage(CPropertyPage* pPage);

Parámetros

pPage
[in] Puntero a un objeto de página. Este parámetro no puede ser NULL.

Comentarios

Este método agrega la página de propiedades especificada como la pestaña situada más a la derecha en la hoja de propiedades. Por lo tanto, use este método para agregar páginas en orden de izquierda a derecha.

Si la hoja de propiedades está en el estilo de Microsoft Outlook, el marco muestra una lista de botones de navegación a la izquierda de la hoja de propiedades. Una vez que este método agrega una página de propiedades, agrega un botón correspondiente a la lista. Para mostrar una página de propiedades, haga clic en su botón correspondiente. Para obtener más información sobre los estilos de hojas de propiedades, vea CMFCPropertySheet::SetLook.

CMFCPropertySheet::AddPageToTree

Agrega una nueva página de propiedades al control de árbol.

void AddPageToTree(
    CMFCPropertySheetCategoryInfo* pCategory,
    CMFCPropertyPage* pPage,
    int nIconNum=-1,
    int nSelIconNum=-1);

Parámetros

pCategory
[in] Puntero a un nodo de árbol primario o NULL para asociar la página especificada con el nodo de nivel superior. Llame al método CMFCPropertySheet::AddTreeCategory para obtener este puntero.

pPage
[in] Puntero a un objeto de página de propiedades.

nIconNum
[in] Índice de base cero de un icono o -1 si no se usa ningún icono. El icono se muestra junto a la página de propiedades del control de árbol cuando la página no está seleccionada. El valor predeterminado es -1.

nSelIconNum
[in] Índice de base cero de un icono o -1 si no se usa ningún icono. El icono se muestra junto a la página de propiedades del control de árbol cuando la página está seleccionada. El valor predeterminado es -1.

Comentarios

Este método agrega una página de propiedades como hoja de un control de árbol. Para agregar una página de propiedades, cree un objeto CMFCPropertySheet, llame al método CMFCPropertySheet::SetLook con el parámetro look establecido en CMFCPropertySheet::PropSheetLook_Tree y, a continuación, use este método para agregar la página de propiedades.

CMFCPropertySheet::AddTreeCategory

Agrega un nuevo nodo al control de árbol.

CMFCPropertySheetCategoryInfo* AddTreeCategory(
    LPCTSTR lpszLabel,
    int nIconNum=-1,
    int nSelectedIconNum=-1,
    const CMFCPropertySheetCategoryInfo* pParentCategory=NULL);

Parámetros

lpszLabel
[in] El nombre del nodo.

nIconNum
[in] Índice de base cero de un icono o -1 si no se usa ningún icono. El icono se muestra junto a la página de propiedades del control de árbol cuando la página no está seleccionada. El valor predeterminado es -1.

nSelectedIconNum
[in] Índice de base cero de un icono o -1 si no se usa ningún icono. El icono se muestra junto a la página de propiedades del control de árbol cuando la página está seleccionada. El valor predeterminado es -1.

pParentCategory
[in] Puntero a un nodo de árbol primario o NULL para asociar la página especificada con el nodo de nivel superior. Establezca este parámetro con el método CMFCPropertySheet::AddTreeCategory.

Valor devuelto

Puntero al nuevo nodo del control de árbol.

Comentarios

Use este método para agregar un nuevo nodo, que también se conoce como categoría, al control de árbol. Para agregar un nodo, cree un objeto CMFCPropertySheet, llame al método CMFCPropertySheet::SetLook con el parámetro look establecido en CMFCPropertySheet::PropSheetLook_Tree y, a continuación, use este método para agregar el nodo.

Use el valor devuelto de este método en llamadas posteriores a CMFCPropertySheet::AddPageToTree y CMFCPropertySheet::AddTreeCategory.

CMFCPropertySheet::CMFCPropertySheet

Construye un objeto CMFCPropertySheet.

CMFCPropertySheet(
    UINT nIDCaption,
    CWnd* pParentWnd=NULL,
    UINT iSelectPage=0);

CMFCPropertySheet(
    LPCTSTR pszCaption,
    CWnd* pParentWnd=NULL,
    UINT iSelectPage=0);

Parámetros

pszCaption
[in] Cadena que contiene el título de la hoja de propiedades. No puede ser NULL.

nIDCaption
[in] Un identificador de recurso que contiene el título de la hoja de propiedades.

pParentWnd
[in] Puntero a la ventana primaria de la hoja de propiedades o NULL si la ventana primaria es la ventana principal de la aplicación. El valor predeterminado es NULL.

iSelectPage
[in] Índice de base cero de la página de propiedades superior. El valor predeterminado es 0.

Comentarios

Para obtener más información, vea los parámetros del constructor CPropertySheet::CPropertySheet.

CMFCPropertySheet::EnablePageHeader

Reserva espacio en la parte superior de cada página para dibujar un encabezado personalizado.

void EnablePageHeader(int nHeaderHeight);

Parámetros

nHeaderHeight
[in] Alto del encabezado, en píxeles.

Comentarios

Para usar el valor del parámetro nHeaderHeight para dibujar un encabezado personalizado, invalide el método CMFCPropertySheet::OnDrawPageHeader.

CMFCPropertySheet::GetHeaderHeight

Recupera el alto del encabezado actual.

int GetHeaderHeight() const;

Valor devuelto

Alto del encabezado, en píxeles.

Comentarios

Llame al método CMFCPropertySheet::EnablePageHeader antes de llamar a este método.

CMFCPropertySheet::GetLook

Recupera un valor de enumeración que especifica el aspecto de la hoja de propiedades actual.

PropSheetLook GetLook() const;

Valor devuelto

Uno de los valores de enumeración que especifica la apariencia de la hoja de propiedades. Para obtener una lista de valores posibles, vea la tabla de enumeración en la sección Comentarios de CMFCPropertySheet::SetLook.

CMFCPropertySheet::GetNavBarWidth

Obtiene el ancho de la barra de navegación.

int GetNavBarWidth() const;

Valor devuelto

Ancho de la barra de navegación, en píxeles.

CMFCPropertySheet::GetTab

Recupera el objeto de control de la pestaña interna que admite el control de la hoja de propiedades actual.

CMFCTabCtrl& GetTab() const;

Valor devuelto

Objeto de control de tabulación interno.

Comentarios

Puede establecer una hoja de propiedades para que aparezca en diferentes estilos, como un control de árbol, una lista de botones de navegación o un conjunto de páginas con pestañas.

Antes de llamar a este método, llame al método CMFCPropertySheet::SetLook para establecer la apariencia del control de hoja de propiedades. A continuación, llame al método CMFCPropertySheet::InitNavigationControl para inicializar el objeto de control de ficha interno. Utilice este método para recuperar el objeto de control tab y, a continuación, use ese objeto para trabajar con las pestañas de la hoja de propiedades.

Este método afirma en modo de depuración si el control de hoja de propiedades no está establecido para que aparezca en el estilo de Microsoft OneNote.

CMFCPropertySheet::InitNavigationControl

Inicializa el aspecto del control de la hoja de propiedades actual.

virtual CWnd* InitNavigationControl();

Valor devuelto

Puntero a la ventana del control de la hoja de propiedades.

Comentarios

Un control de hoja de propiedades puede aparecer en varios formularios diferentes, como un conjunto de páginas con pestañas, un control de árbol o una lista de botones de navegación. Use el método CMFCPropertySheet::SetLook para especificar la apariencia del control de hoja de propiedades.

CMFCPropertySheet::OnActivatePage

Lo llama el marco de trabajo cuando se ha habilitado una página de propiedades.

virtual void OnActivatePage(CPropertyPage* pPage);

Parámetros

pPage
[in] Puntero a un objeto de página de propiedades que representa la página de propiedades habilitada.

Comentarios

De forma predeterminada, este método garantiza que la página de propiedades habilitada se desplaza hacia la vista. Si el estilo de la hoja de propiedades actual contiene un panel de Microsoft Outlook, este método establece el botón correspondiente de Outlook en el estado comprobado.

CMFCPropertySheet::OnDrawPageHeader

Lo llama el marco de trabajo para dibujar el encabezado de una página de propiedades personalizada.

virtual void OnDrawPageHeader(
    CDC* pDC,
    int nPage,
    CRect rectHeader);

Parámetros

pDC
[in] Puntero a un contexto de dispositivo.

nPage
[in] Número de página de propiedades de base cero.

rectHeader
[in] Rectángulo delimitador que especifica dónde dibujar el encabezado.

Comentarios

De forma predeterminada, este método no hace nada. Si invalida este método, llame al método CMFCPropertySheet::EnablePageHeader antes de que el marco llame a este método.

CMFCPropertySheet::OnRemoveTreePage

Lo llama el marco de trabajo para quitar una página de propiedades de un control de árbol.

virtual BOOL OnRemoveTreePage(CPropertyPage* pPage);

Parámetros

pPage
[in] Puntero a un objeto de página de propiedades que representa la página de propiedades que se va a quitar.

Valor devuelto

TRUE si este método se ejecuta correctamente; de lo contrario, FALSE.

CMFCPropertySheet::RemoveCategory

Quita un nodo del control de árbol.

void RemoveCategory(CMFCPropertySheetCategoryInfo* pCategory);

Parámetros

pCategory
[in] Puntero a una categoría (nodo) que se va a quitar.

Comentarios

Use este método para quitar un nodo, que también se conoce como una categoría, de un control de árbol. Use el método CMFCPropertySheet::AddTreeCategory para agregar un nodo a un control de árbol.

CMFCPropertySheet::RemovePage

Quita una página de propiedades de la hoja de propiedades.

void RemovePage(CPropertyPage* pPage);
void RemovePage(int nPage);

Parámetros

pPage
[in] Puntero a un objeto de página de propiedades que representa la página de propiedades que se va a quitar. No puede ser NULL.

nPage
[in] Índice de base cero de la página que se va a quitar.

Comentarios

Este método quita la página de propiedades especificada y destruye su ventana asociada. El objeto de página de propiedades que especifica el parámetro pPage no se destruye hasta que se cierra la ventana CMFCPropertySheet.

CMFCPropertySheet::SetIconsList

Especifica la lista de imágenes que se usan en el control de navegación del panel de Outlook.

BOOL SetIconsList(
    UINT uiImageListResID,
    int cx,
    COLORREF clrTransparent=RGB(255, 0, 255));
void SetIconsList(HIMAGELIST hIcons);

Parámetros

uiImageListResID
[in] Identificador de recurso de una lista de imágenes.

cx
[in] Ancho, en píxeles, de iconos de la lista de imágenes.

clrTransparent
[in] Color de imagen transparente. Las partes de la imagen que son este color serán transparentes. El valor predeterminado es el color magenta, RGB(255,0,255).

hIcons
[in] Identificador de una lista de imágenes existente.

Valor devuelto

En la primera sintaxis de sobrecarga de método, TRUE si este método es correcto; de lo contrario, FALSE.

Comentarios

Si la hoja de propiedades está en el estilo de Microsoft Outlook, el marco muestra una lista de botones de navegación, el denominado control de panel de Outlook, a la izquierda de la hoja de propiedades. Use este método para establecer la lista de imágenes que usará el control de panel de Outlook.

Para obtener más información sobre los métodos que admiten este método, vea CImageList::Create y CImageList::Add. Para obtener más información sobre cómo establecer el estilo de una hoja de propiedades, vea CMFCPropertySheet::SetLook.

CMFCPropertySheet::SetLook

Especifica el aspecto de la hoja de propiedades.

void SetLook(
    PropSheetLook look,
    int nNavControlWidth=100);

Parámetros

look
[in] Uno de los valores de enumeración que especifica la apariencia de la hoja de propiedades. El estilo predeterminado de una hoja de propiedades es CMFCPropertySheet::PropSheetLook_Tabs. Para más información, consulte la tabla de la sección de este tema.

nNavControlWidth
[in] El ancho del control de navegación, en píxeles. El valor predeterminado es 100.

Comentarios

Para mostrar una hoja de propiedades en un estilo distinto del valor predeterminado, llame a este método antes de crear la ventana de hoja de propiedades.

En la tabla siguiente se enumeran los valores de enumeración que se pueden especificar en el parámetro look.

Valor Descripción
CMFCPropertySheet::PropSheetLook_Tabs (Valor predeterminado) Muestra una pestaña para cada página de propiedades. Las pestañas se muestran en la parte superior de la hoja de propiedades y se apilan si hay más pestañas de las que caben en una sola fila.
CMFCPropertySheet::PropSheetLook_OutlookBar Muestra una lista de botones de navegación, en el estilo de la barra de Microsoft Outlook, en el lado izquierdo de la hoja de propiedades. Cada botón de la lista corresponde a una página de propiedades. El marco muestra flechas de desplazamiento si hay más botones de los que caben en el área visible de la lista.
CMFCPropertySheet::PropSheetLook_Tree Muestra un control de árbol en el lado izquierdo de la hoja de propiedades. Cada nodo primario o secundario del control de árbol corresponde a una página de propiedades. El marco muestra flechas de desplazamiento si hay más nodos de los que caben en el área visible del control de árbol.
CMFCPropertySheet::PropSheetLook_OneNoteTabs Muestra una pestaña, en el estilo de Microsoft OneNote, para cada página de propiedades. El marco muestra pestañas en la parte superior de la hoja de propiedades y flechas de desplazamiento si hay más pestañas de las que caben en una sola fila.
CMFCPropertySheet::PropSheetLook_List Muestra una lista en el lado izquierdo de la hoja de propiedades. Cada elemento de lista corresponde a una página de propiedades. El marco muestra flechas de desplazamiento si hay más elementos de lista de los que caben en el área visible de la lista.

Consulte también

Gráfico de jerarquías
Clases
CMFCPropertyPage (clase)
CMFCOutlookBar (clase)