Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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_CHKCHANGEO 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
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_CHILDSempreWS_VISIBLENormalmenteWS_DISABLEDRaramenteWS_VSCROLLPara adicionar uma barra de scroll verticalWS_HSCROLLPara adicionar uma barra de deslocamento horizontalWS_GROUPPara agrupar controlosWS_TABSTOPPara 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_CHECKBOXBS_AUTOCHECKBOXBS_AUTO3STATEBS_3STATE
Para informações sobre estes estilos, consulte Estilos de Botão.