Classe CMFCPropertySheet

A classe CMFCPropertySheet dá suporte a uma folha de propriedades em que cada página de propriedade é indicada por uma guia de página, um botão de barra de ferramentas, um nó de controle de árvore ou um item de lista.

Sintaxe

class CMFCPropertySheet : public CPropertySheet

Membros

Construtores públicos

Nome Descrição
CMFCPropertySheet::CMFCPropertySheet Constrói um objeto CMFCPropertySheet.
CMFCPropertySheet::~CMFCPropertySheet Destruidor.

Métodos públicos

Nome Descrição
CMFCPropertySheet::AddPage Adiciona uma página à folha de propriedades.
CMFCPropertySheet::AddPageToTree Adiciona uma nova página de propriedades ao controle de árvore.
CMFCPropertySheet::AddTreeCategory Adiciona um novo nó ao controle de árvore.
CMFCPropertySheet::EnablePageHeader Reserva espaço na parte superior de cada página para desenhar um cabeçalho personalizado.
CMFCPropertySheet::GetHeaderHeight Recupera a altura do cabeçalho atual.
CMFCPropertySheet::GetLook Recupera um valor de enumeração que especifica a aparência da folha de propriedades atual.
CMFCPropertySheet::GetNavBarWidth Tenta novamente a largura da barra de navegação em pixels.
CMFCPropertySheet::GetTab Recupera o objeto de controle guia interno que dá suporte ao controle de folha de propriedades atual.
CMFCPropertySheet::GetThisClass Usado pela estrutura para obter um ponteiro para o objeto CRuntimeClass associado a esse tipo de classe.
CMFCPropertySheet::InitNavigationControl Inicializa a aparência do controle de folha de propriedades atual.
CMFCPropertySheet::OnActivatePage Chamado pela estrutura quando uma página de propriedades é habilitada.
CMFCPropertySheet::OnDrawPageHeader Chamado pela estrutura para desenhar um cabeçalho personalizado de página de propriedades.
CMFCPropertySheet::OnInitDialog Identifica a mensagem WM_INITDIALOG. (Substitui CPropertySheet::OnInitDialog.)
CMFCPropertySheet::OnRemoveTreePage Chamado pela estrutura para remover uma página de propriedades de um controle de árvore.
CMFCPropertySheet::PreTranslateMessage Converte mensagens de janela antes de serem enviadas para as funções TranslateMessage e DispatchMessage de Windows. (Substitui CPropertySheet::PreTranslateMessage.)
CMFCPropertySheet::RemoveCategory Remove um nó do controle de árvore.
CMFCPropertySheet::RemovePage Remove uma página de propriedades da folha de propriedades.
CMFCPropertySheet::SetIconsList Especifica a lista de imagens usadas no controle de navegação do painel do Outlook.
CMFCPropertySheet::SetLook Especifica a aparência da folha de propriedades.

Comentários

A classe CMFCPropertySheet representa folhas de propriedades, também conhecidas como caixas de diálogo de guia. A classe CMFCPropertySheet pode exibir uma página de propriedades de várias maneiras.

Execute as seguintes etapas para usar a classe CMFCPropertySheet no aplicativo:

  1. Derive uma classe da classe CMFCPropertySheet e nomeie a classe, como por exemplo, CMyPropertySheet.

  2. Construa um objeto CMFCPropertyPage para cada página de propriedades.

  3. Chame o método CMFCPropertySheet::SetLook no construtor CMyPropertySheet. Um parâmetro desse método especifica que as páginas de propriedades devem ser exibidas também como guias ao longo da parte superior ou esquerda da folha de propriedades, guias no estilo de uma folha de propriedades do Microsoft OneNote, botões em um controle da barra de ferramentas do Microsoft Outlook, nós em um controle de árvore, ou como uma lista de itens no lado esquerdo da folha de propriedades.

  4. Se você criar uma folha de propriedades no estilo de uma barra de ferramentas do Microsoft Outlook, chame o método CMFCPropertySheet::SetIconsList para associar uma lista de imagens junto com as páginas de propriedades.

  5. Chame o método CMFCPropertySheet::AddPage para cada página de propriedades.

  6. Crie um controle CMFCPropertySheet e chame seu método DoModal.

Ilustrações

A ilustração a seguir representa uma folha de propriedades que está no estilo de uma barra de ferramentas inserida no Microsoft Outlook. A barra de ferramentas do Outlook é exibida no lado esquerdo da folha de propriedades.

Controles de cores CMFCPropertySheet.

A ilustração a seguir representa uma folha de propriedades que contém um objeto Classe CMFCPropertyGridCtrl. Esse objeto é uma folha de propriedades no estilo de uma folha de propriedades de controles comuns padrão.

Lista CMFCPropertySheet e controles de propriedade.

A ilustração a seguir representa uma folha de propriedades que está no estilo de um controle de árvore.

Árvore de propriedades.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCPropertySheet

Requisitos

Cabeçalho: afxpropertysheet.h

CMFCPropertySheet::AddPage

Adiciona uma página à folha de propriedades.

void AddPage(CPropertyPage* pPage);

Parâmetros

pPage
[in] Ponteiro para um objeto de página. Esse parâmetro não pode ser NULL.

Comentários

Esse método adiciona a página de propriedades especificada como a guia mais à direita na folha de propriedades. Portanto, use esse método para adicionar páginas na ordem da esquerda para a direita.

Se a folha de propriedades estiver no estilo do Microsoft Outlook, a estrutura exibirá uma lista de botões de navegação à esquerda da folha de propriedades. Depois que esse método adiciona uma página de propriedade, ele adiciona um botão correspondente à lista. Para exibir uma página de propriedades, clique no botão correspondente. Para saber mais sobre estilos de folhas de propriedades, confira CMFCPropertySheet::SetLook.

CMFCPropertySheet::AddPageToTree

Adiciona uma nova página de propriedades ao controle de árvore.

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

Parâmetros

pCategory
[in] Ponteiro para um nó de árvore pai ou NULL para associar a página especificada ao nó de nível superior. Chame o método CMFCPropertySheet::AddTreeCategory para obter esse ponteiro.

pPage
[in] Ponteiro para um objeto da página de propriedades.

nIconNum
[in] Índice baseado em zero de um ícone ou -1 se nenhum ícone for usado. O ícone é exibido ao lado da página de propriedades de controle de árvore quando a página não está selecionada. O valor padrão é -1.

nSelIconNum
[in] Índice baseado em zero de um ícone ou -1 se nenhum ícone for usado. O ícone é exibido ao lado da página de propriedades de controle de árvore quando a página está selecionada. O valor padrão é -1.

Comentários

Esse método adiciona uma página de propriedades como uma folha de um controle de árvore. Para adicionar uma página de propriedades, crie um objeto CMFCPropertySheet, chame o método CMFCPropertySheet::SetLook com o parâmetro look definido como CMFCPropertySheet::PropSheetLook_Tree e, em seguida, use esse método para adicionar a página de propriedades.

CMFCPropertySheet::AddTreeCategory

Adiciona um novo nó ao controle de árvore.

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

Parâmetros

lpszLabel
[in] O nome do nó.

nIconNum
[in] Índice baseado em zero de um ícone ou -1 se nenhum ícone for usado. O ícone é exibido ao lado da página de propriedades de controle de árvore quando a página não está selecionada. O valor padrão é -1.

nSelectedIconNum
[in] Índice baseado em zero de um ícone ou -1 se nenhum ícone for usado. O ícone é exibido ao lado da página de propriedades de controle de árvore quando a página está selecionada. O valor padrão é -1.

pParentCategory
[in] Ponteiro para um nó de árvore pai ou NULL para associar a página especificada ao nó de nível superior. Defina esse parâmetro com o método CMFCPropertySheet::AddTreeCategory.

Valor de retorno

Um ponteiro para o novo nó no controle de árvore.

Comentários

Use esse método para adicionar um novo nó, que também é referido como uma categoria, ao controle de árvore. Para adicionar um nó, crie um objeto CMFCPropertySheet, chame o método CMFCPropertySheet::SetLook com o parâmetro look definido como CMFCPropertySheet::PropSheetLook_Tree e, em seguida, use esse método para adicionar o nó.

Use o valor retornado desse método em chamadas subsequentes para CMFCPropertySheet::AddPageToTree e CMFCPropertySheet::AddTreeCategory.

CMFCPropertySheet::CMFCPropertySheet

Constrói um objeto CMFCPropertySheet.

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

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

Parâmetros

pszCaption
[in] Uma cadeia de caracteres que contém a legenda da folha de propriedades. Não pode ser NULL.

nIDCaption
[in] Uma ID do recurso que contém a legenda da folha de propriedades.

pParentWnd
[in] Ponteiro para a janela pai da folha de propriedades ou NULL se a janela pai for a janela principal do aplicativo. O valor padrão é NULL.

iSelectPage
[in] O índice baseado em zero da página de propriedades superior. O valor padrão é 0.

Comentários

Para obter mais informações, consulte os parâmetros do construtor CPropertySheet::CPropertySheet.

CMFCPropertySheet::EnablePageHeader

Reserva espaço na parte superior de cada página para desenhar um cabeçalho personalizado.

void EnablePageHeader(int nHeaderHeight);

Parâmetros

nHeaderHeight
[in] A altura do cabeçalho, em pixels.

Comentários

Para usar o valor do parâmetro nHeaderHeight para desenhar um cabeçalho personalizado, substitua o método CMFCPropertySheet::OnDrawPageHeader.

CMFCPropertySheet::GetHeaderHeight

Recupera a altura do cabeçalho atual.

int GetHeaderHeight() const;

Valor de retorno

A altura do cabeçalho, em pixels.

Comentários

Chame o método CMFCPropertySheet::EnablePageHeader antes de chamar esse método.

CMFCPropertySheet::GetLook

Recupera um valor de enumeração que especifica a aparência da folha de propriedades atual.

PropSheetLook GetLook() const;

Valor de retorno

Um dos valores de enumeração que especifica a aparência da folha de propriedades. Para ver uma lista de valores possíveis, confira a tabela de enumeração na seção Comentários de CMFCPropertySheet::SetLook.

CMFCPropertySheet::GetNavBarWidth

Obtém a largura da barra de navegação.

int GetNavBarWidth() const;

Valor de retorno

A largura da barra de navegação em pixels.

CMFCPropertySheet::GetTab

Recupera o objeto de controle guia interno que dá suporte ao controle de folha de propriedades atual.

CMFCTabCtrl& GetTab() const;

Valor de retorno

Um objeto de controle guia interno.

Comentários

Você pode definir uma folha de propriedades para que ele apareça em estilos diferentes, como um controle de árvore, uma lista de botões de navegação ou um conjunto de páginas com guias.

Antes de chamar esse método, chame o método CMFCPropertySheet::SetLook para definir a aparência do controle de folha de propriedades. Em seguida, chame o método CMFCPropertySheet::InitNavigationControl para inicializar o objeto de controle guia interno. Use esse método para recuperar o objeto de controle guia e, em seguida, use esse objeto para trabalhar com as guias na folha de propriedades.

Esse método declara no modo de depuração se o controle de folha de propriedades não estiver definido para aparecer no estilo do Microsoft OneNote.

CMFCPropertySheet::InitNavigationControl

Inicializa a aparência do controle de folha de propriedades atual.

virtual CWnd* InitNavigationControl();

Valor de retorno

Um ponteiro para a janela do controle de folha de propriedades.

Comentários

Um controle de folha de propriedades pode aparecer de várias formas diferentes, como um conjunto de páginas com guias, um controle de árvore ou uma lista de botões de navegação. Use o método CMFCPropertySheet::SetLook para especificar a aparência do controle de folha de propriedades.

CMFCPropertySheet::OnActivatePage

Chamado pela estrutura quando uma página de propriedades é habilitada.

virtual void OnActivatePage(CPropertyPage* pPage);

Parâmetros

pPage
[in] Ponteiro para um objeto da página de propriedades que representa a página de propriedades habilitada.

Comentários

Por padrão, esse método garante que a página de propriedades habilitada seja rolada para exibição. Se o estilo da folha de propriedades atual contiver um painel do Microsoft Outlook, esse método definirá o botão do Outlook correspondente para o estado verificado.

CMFCPropertySheet::OnDrawPageHeader

Chamado pela estrutura para desenhar o cabeçalho personalizado para uma página de propriedades.

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

Parâmetros

pDC
[in] Ponteiro para um contexto de dispositivo.

nPage
[in] O número da página de propriedades baseado em zero.

rectHeader
[in] Um retângulo delimitador que especifica onde desenhar o cabeçalho.

Comentários

Por padrão, esse método não faz nada. Se você substituir esse método, chame o método CMFCPropertySheet::EnablePageHeader antes que a estrutura chame esse método.

CMFCPropertySheet::OnRemoveTreePage

Chamado pela estrutura para remover uma página de propriedades de um controle de árvore.

virtual BOOL OnRemoveTreePage(CPropertyPage* pPage);

Parâmetros

pPage
[in] Ponteiro para um objeto da página de propriedades que representa a página de propriedades a ser removida.

Valor de retorno

TRUE se o método for bem-sucedido; caso contrário, FALSE.

CMFCPropertySheet::RemoveCategory

Remove um nó do controle de árvore.

void RemoveCategory(CMFCPropertySheetCategoryInfo* pCategory);

Parâmetros

pCategory
[in] Ponteiro para uma categoria (nó) a ser removida.

Comentários

Use esse método para remover um nó, que também é referido como uma categoria, do controle de árvore. Use o método CMFCPropertySheet::AddTreeCategory para adicionar um nó a um controle de árvore.

CMFCPropertySheet::RemovePage

Remove uma página de propriedades da folha de propriedades.

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

Parâmetros

pPage
[in] Ponteiro para o objeto da página de propriedades que representa a página de propriedades a ser removida. Não pode ser NULL.

nPage
[in] Índice baseado em zero da página ser removida.

Comentários

Esse método remove a página de propriedades especificada e destrói sua janela associada. O objeto da página de propriedades especificado pelo parâmetro pPage não será destruído até que a janela CMFCPropertySheet seja fechada.

CMFCPropertySheet::SetIconsList

Especifica a lista de imagens usadas no controle de navegação do painel do Outlook.

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

Parâmetros

uiImageListResID
[in] A ID do recurso de uma lista de imagens.

cx
[in] A largura, em pixels, dos ícones na lista de imagens.

clrTransparent
[in] A cor da imagem transparente. As partes da imagem que são dessa cor serão transparentes. O valor padrão é a cor magenta, RGB(255,0,255).

hIcons
[in] Um identificador para uma lista de imagens existente.

Valor de retorno

Na sintaxe de sobrecarga do primeiro método, TRUE se esse método for bem-sucedido; caso contrário, FALSE.

Comentários

Se a folha de propriedades estiver no estilo do Microsoft Outlook, a estrutura exibirá uma lista de botões de navegação, chamada de controle de painel do Outlook, à esquerda da folha de propriedades. Use esse método para definir a lista de imagens a ser usada pelo controle de painel do Outlook.

Para obter mais informações sobre os métodos que dão suporte a esse método, consulte CImageList::Create e CImageList::Add. Para obter mais informações sobre como definir o estilo de uma folha de propriedades, confira CMFCPropertySheet::SetLook.

CMFCPropertySheet::SetLook

Especifica a aparência da folha de propriedades.

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

Parâmetros

look
[in] Um dos valores de enumeração que especifica a aparência da folha de propriedades. O estilo padrão de uma folha de propriedades é CMFCPropertySheet::PropSheetLook_Tabs. Para obter mais informações, consulte a tabela na seção Comentários deste tópico.

nNavControlWidth
[in] A largura do controle de navegação, em pixels. O valor padrão é 100.

Comentários

Para exibir uma folha de propriedades em um estilo diferente do padrão, chame esse método antes de criar a janela da folha de propriedades.

A tabela a seguir lista os valores de enumeração que podem ser especificados no parâmetro look.

Valor Descrição
CMFCPropertySheet::PropSheetLook_Tabs (Padrão) Exibe uma guia para cada página de propriedade. As guias são exibidas na parte superior da folha de propriedades e são empilhadas se houver mais guias do que se ajustariam em uma única linha.
CMFCPropertySheet::PropSheetLook_OutlookBar Exibe uma lista de botões de navegação, no estilo da barra do Microsoft Outlook, no lado esquerdo da folha de propriedades. Cada botão na lista corresponde a uma página de propriedades. A estrutura exibe setas de rolagem se houver mais botões do que se ajustariam na área visível da lista.
CMFCPropertySheet::PropSheetLook_Tree Exibe um controle de árvore no lado esquerdo da folha de propriedades. Cada nó pai ou nó filho do controle de árvore corresponde a uma página de propriedades. A estrutura exibe setas de rolagem se houver mais nós do que se ajustariam na área visível da lista.
CMFCPropertySheet::PropSheetLook_OneNoteTabs Exibe uma guia, no estilo do Microsoft OneNote, para cada página de propriedades. A estrutura exibe guias na parte superior da folha de propriedades e setas de rolagem, se houver mais guias do que se ajustariam em uma única linha.
CMFCPropertySheet::PropSheetLook_List Exibe uma lista no lado esquerdo da folha de propriedades. Cada item de lista corresponde a uma página de propriedades. A estrutura exibe setas de rolagem se houver mais itens de lista do que se ajustariam na área visível da lista.

Confira também

Gráfico da hierarquia
Classes
Classe CMFCPropertyPage
Classe CMFCOutlookBar