Partilhar via


CCheckListBox Classe

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Fornece a funcionalidade de uma caixa de checklist do Windows.

Sintaxe

class CCheckListBox : public CListBox

Membros

Construtores Públicos

Nome Description
CCheckListBox::CCheckListBox Constrói um CCheckListBox objeto.

Métodos Públicos

Nome Description
CCheckListBox::Create Cria a caixa de checklist do Windows e anexa-a ao CCheckListBox objeto.
CCheckListBox::DrawItem Chamada pelo framework quando um aspeto visual de uma caixa de lista de sorteio do proprietário muda.
CCheckListBox::Enable Ativa ou desativa um item da lista de verificação.
CCheckListBox::GetCheck Mostra o estado da caixa de seleção de um artigo.
CCheckListBox::GetCheckStyle Percebe o estilo das caixas de verificação dos controlos.
CCheckListBox::IsEnabled Determina se um item está ativado.
CCheckListBox::MeasureItem Chamada pelo framework quando é criada uma caixa de lista com um estilo proprietário-draw.
CCheckListBox::OnGetCheckPosition Chamado pelo framework para obter a posição da caixa de seleção de um item.
CCheckListBox::SetCheck Define o estado da caixa de seleção de um artigo.
CCheckListBox::SetCheckStyle Define o estilo das caixas de seleção do controlo.

Observações

Uma "caixa de checklist" apresenta uma lista de itens, como nomes de ficheiros. Cada item da lista tem uma caixa de seleção ao lado que o utilizador pode assinalar ou eliminar.

CCheckListBox é apenas para controlos desenhados pelo proprietário porque a lista contém mais do que sequências de texto. Na sua forma mais simples, uma caixa de checklist contém sequências de texto e caixas de seleção, mas não precisa de ter texto nenhum. Por exemplo, podes ter uma lista de pequenos bitmaps com uma caixa de seleção ao lado de cada item.

Para criar a sua própria caixa de checklist, deve derivar a sua própria classe a partir CCheckListBoxde . Para obter a sua própria classe, escreva um construtor para a classe derivada e depois chame Create.

Se quiser tratar mensagens de notificação do Windows enviadas por uma caixa de lista para o seu pai (normalmente uma classe derivada de CDialog), adicione uma entrada de mapa de mensagens e uma função membro de manipulador de mensagens à classe pai para cada mensagem.

Cada entrada de mapa de mensagem assume a seguinte forma:

ON_Notificação(id, )memberFxn

onde id especifica o ID da janela filho do controlo que envia a notificação e memberFxn é o nome da função membro pai que escreveu para tratar da notificação.

O protótipo da função dos pais é o seguinte:

afx_msg void memberFxn();

Existe apenas uma entrada no mapa de mensagens que se aplica especificamente a CCheckListBox (mas veja também as entradas do mapa de mensagens para CListBox):

  • ON_CLBN_CHKCHANGE O utilizador alterou o estado da caixa de seleção de um item.

Se a sua caixa de lista de verificação for uma caixa de lista de verificação por defeito (uma lista de cadeias com as caixas de seleção do tamanho padrão à esquerda de cada uma), pode usar a caixa padrão CCheckListBox::DrawItem para desenhar a caixa da lista de verificação. Caso contrário, tem de sobrescrever a CListBox::CompareItem função e as CCheckListBox::DrawItem funções e CCheckListBox::MeasureItem .

Pode criar uma caixa de checklist a partir de um modelo de diálogo ou diretamente no seu código.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CListBox

CCheckListBox

Requerimentos

Cabeçalho:afxwin.h

CCheckListBox::CCheckListBox

Constrói um CCheckListBox objeto.

CCheckListBox();

Observações

Constroem um CCheckListBox objeto em dois passos. Primeiro defina uma classe derivada de CCheckListBox, depois chame Create, que inicializa a caixa de checklist do Windows e a anexa ao CCheckListBox objeto.

Example

CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
                      CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);

CCheckListBox::Create

Cria a caixa de checklist do Windows e anexa-a ao CCheckListBox objeto.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parâmetros

dwStyle
Especifica o estilo da caixa da lista de verificação. O estilo deve ser LBS_HASSTRINGS e ( LBS_OWNERDRAWFIXED todos os itens da lista têm a mesma altura) ou LBS_OWNERDRAWVARIABLE (os itens da lista têm alturas variadas). Este estilo pode ser combinado com outros estilos de caixa de lista , exceto LBS_USETABSTOPS.

rect
Especifica o tamanho e a posição da caixa de verificação. Pode ser um CRect objeto ou uma RECT estrutura.

pParentWnd
Especifica a janela principal da caixa de verificação (normalmente um CDialog objeto). Não pode ser NULL.

nID
Especifica o ID de controlo da caixa de verificação.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Constroem um CCheckListBox objeto em dois passos. Primeiro, defina uma classe derivada de CcheckListBox e depois chame Create, que inicializa a caixa de checklist do Windows e a anexa ao CCheckListBox. Veja CCheckListBox::CCheckListBox para uma amostra.

Quando Create executa, o Windows envia as WM_NCCREATEmensagens , WM_CREATE, WM_NCCALCSIZE, e WM_GETMINMAXINFO para o controlo da caixa de verificação.

Estas mensagens são tratadas por defeito pelas OnNcCreatefunções , OnCreate, OnNcCalcSize, e OnGetMinMaxInfo membros na CWnd classe base. Para estender o tratamento de mensagens por defeito, adicione um mapa de mensagens à classe derivada e sobrepone as funções membros do manipulador de mensagens anteriores. Override OnCreate, por exemplo, para realizar a inicialização necessária para uma nova classe.

Aplique os seguintes estilos de janela a um controlo de caixa de verificação:

  • WS_CHILD Sempre

  • WS_VISIBLE Normalmente

  • WS_DISABLED Raramente

  • WS_VSCROLL Para adicionar uma barra de scroll vertical

  • WS_HSCROLL Para adicionar uma barra de deslocamento horizontal

  • WS_GROUP Para agrupar controlos

  • WS_TABSTOP Para permitir a separação para este controlo

CCheckListBox::DrawItem

Chamada pela estrutura quando um aspeto visual de uma caixa de verificação desenhada pelo proprietário muda.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parâmetros

lpDrawItemStruct
Um ponteiro longo para uma DRAWITEMSTRUCT estrutura que contém informação sobre o tipo de desenho necessário.

Observações

Os itemAction membros e itemState da DRAWITEMSTRUCT estrutura definem a ação de desenho que deve ser realizada.

Por defeito, esta função desenha uma lista de caixas de seleção por defeito, composta por uma lista de cadeias de caracteres, cada uma com uma caixa de seleção do tamanho padrão à esquerda. O tamanho da lista de caixas de seleção é o especificado em Create.

Substitua esta função de membro para implementar o desenho de caixas de checklist do proprietário-desenho que não são o padrão, como caixas de checklist com listas que não são strings, com itens de altura variável, ou com caixas de seleção que não estejam à esquerda. A aplicação deve restaurar todos os objetos da interface do dispositivo gráfico (GDI) selecionados para o contexto de visualização fornecido lpDrawItemStruct antes da terminação desta função membro.

Se os itens da caixa de checklist não tiverem todos a mesma altura, o estilo da caixa da checklist (especificado em Create) deve ser LBS_OWNERVARIABLE, e deve sobrepor a MeasureItem função.

CCheckListBox::Enable

Chame esta função para ativar ou desativar um item de uma caixa de verificação.

void Enable(
    int nIndex,
    BOOL bEnabled = TRUE);

Parâmetros

nIndex
Índice do item da caixa de verificação a ativar.

bEnabled
Especifica se o item está ativado ou desativado.

CCheckListBox::GetCheck

Recupera o estado da caixa de seleção especificada.

int GetCheck(int nIndex);

Parâmetros

nIndex
Índice base zero de uma caixa de seleção contida na caixa de lista.

Valor de retorno

O estado da caixa de seleção especificada. A tabela seguinte lista os possíveis valores.

Valor Description
BST_CHECKED A caixa de seleção está assinalada.
BST_UNCHECKED A caixa de seleção não está assinalada.
BST_INDETERMINATE O estado da caixa de seleção é indeterminado.

CCheckListBox::GetCheckStyle

Ligue para esta função para obter o estilo da caixa de verificação.

UINT GetCheckStyle();

Valor de retorno

O estilo das caixas de seleção do controlo.

Observações

Para informações sobre estilos possíveis, veja SetCheckStyle.

CCheckListBox::IsEnabled

Chame esta função para determinar se um item está ativado.

BOOL IsEnabled(int nIndex);

Parâmetros

nIndex
Índice do item.

Valor de retorno

Diferente de zero se o item estiver ativado; caso contrário, 0.

CCheckListBox::MeasureItem

Chamada pelo framework quando é criada uma caixa de checklist com um estilo não padrão.

virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);

Parâmetros

lpMeasureItemStruct
Um longo indicador para uma MEASUREITEMSTRUCT estrutura.

Observações

Por defeito, esta função membro não faz nada. Substitua esta função membro e preencha a MEASUREITEMSTRUCT estrutura para informar o Windows das dimensões dos itens da lista de verificação. Se a caixa da lista de verificação for criada com o LBS_OWNERDRAWVARIABLE estilo, o framework chama esta função membro para cada item na caixa da lista. Caso contrário, este membro é chamado apenas uma vez.

CCheckListBox::OnGetCheckPosition

O framework chama esta função para obter a posição e o tamanho da caixa de seleção num item.

virtual CRect OnGetCheckPosition(
    CRect rectItem,
    CRect rectCheckBox);

Parâmetros

rectItem
A posição e o tamanho do item da lista.

rectCheckBox
A posição e o tamanho padrão da caixa de seleção de um item.

Valor de retorno

A posição e o tamanho da caixa de seleção de um artigo.

Observações

A implementação padrão apenas devolve a posição e o tamanho padrão da caixa de seleção (rectCheckBox). Por defeito, uma caixa de seleção está alinhada no canto superior esquerdo de um item e é o tamanho padrão da caixa de verificação. Pode haver casos em que queira as caixas de seleção à direita, ou uma caixa maior ou mais pequena. Nestes casos, substitua OnGetCheckPosition para alterar a posição e o tamanho da caixa de seleção dentro do item.

CCheckListBox::SetCheck

Define o estado da caixa de seleção especificada.

void SetCheck(
    int nIndex,
    int nCheck);

Parâmetros

nIndex
Índice base zero de uma caixa de seleção contida na caixa de lista.

nCheck
O estado do botão para a caixa de seleção especificada. Consulte a secção de Observações para possíveis valores.

Observações

A tabela seguinte lista os valores possíveis para o nCheck parâmetro.

Valor Description
BST_CHECKED Selecione a caixa de seleção especificada.
BST_UNCHECKED Despacha a caixa de verificação especificada.
BST_INDETERMINATE Defina o estado da caixa de seleção especificado para indeterminado.

Este estado só está disponível se o estilo da caixa de seleção for BS_AUTO3STATE ou BS_3STATE. Para mais informações, consulte Estilos de Botões.

CCheckListBox::SetCheckStyle

Chame esta função para definir o estilo das caixas de seleção na caixa da lista de verificação.

void SetCheckStyle(UINT nStyle);

Parâmetros

nStyle
Determina o estilo das caixas de seleção na caixa da lista de verificação.

Observações

Estilos válidos são:

  • BS_CHECKBOX

  • BS_AUTOCHECKBOX

  • BS_AUTO3STATE

  • BS_3STATE

Para informações sobre estes estilos, consulte Estilos de Botão.

Consulte também

Exemplo MFC TSTCON
CListBox Classe
Gráfico de Hierarquia