Classe CSpinButtonCtrl

Fornece a funcionalidade de controle de botão de rotação comum do Windows.

Sintaxe

class CSpinButtonCtrl : public CWnd

Membros

Construtores públicos

Nome Descrição
CSpinButtonCtrl::CSpinButtonCtrl Constrói um objeto CSpinButtonCtrl.

Métodos públicos

Nome Descrição
CSpinButtonCtrl::Create Cria um controle de botão de rotação e o anexa a um objeto CSpinButtonCtrl.
CSpinButtonCtrl::CreateEx Cria um controle de botão de rotação com os estilos estendidos especificados do Windows e o anexa a um objeto CSpinButtonCtrl.
CSpinButtonCtrl::GetAccel Recupera informações de aceleração para um controle de botão de rotação.
CSpinButtonCtrl::GetBase Recupera a base atual para um controle de botão de rotação.
CSpinButtonCtrl::GetBuddy Recupera um ponteiro para a janela buddy atual.
CSpinButtonCtrl::GetPos Recupera a posição atual de um controle de botão de rotação.
CSpinButtonCtrl::GetRange Recupera os limites superior e inferior (intervalo) para um controle de botão de rotação.
CSpinButtonCtrl::SetAccel Define a aceleração para um controle de botão de rotação.
CSpinButtonCtrl::SetBase Define a base para um controle de botão de rotação.
CSpinButtonCtrl::SetBuddy Define a janela buddy para um controle de botão de rotação.
CSpinButtonCtrl::SetPos Define a posição atual para o controle.
CSpinButtonCtrl::SetRange Define os limites superior e inferior (intervalo) para um controle de botão de rotação.

Comentários

Um "controle de botão de rotação" (também conhecido como um controle acima-abaixo) é um par de botões de seta que o usuário pode clicar para incrementar ou decrementar um valor, como uma posição de rolagem ou um número exibido em um controle complementar. O valor associado a um controle de botão de rotação é chamado de posição atual. Um controle de botão de rotação é usado com mais frequência com um controle complementar, chamado de "janela buddy".

Esse controle (e, portanto, a classe CSpinButtonCtrl) está disponível apenas para programas em execução no Windows 95/98 e Windows NT versão 3.51 e posteriores.

Para o usuário, um controle de botão de rotação e sua janela buddy geralmente se parecem com um único controle. Você pode especificar que um controle de botão de rotação se posicione automaticamente próximo a janela buddy e que ele defina automaticamente a legenda da janela buddy como sua posição atual. Você pode usar um controle de botão de rotação com um controle de edição para solicitar ao usuário a entrada numérica.

Clicar na seta para cima move a posição atual em direção ao máximo e clicar na seta para baixo move a posição atual em direção ao mínimo. Por padrão, o mínimo é 100 e o máximo é 0. Sempre que a configuração mínima for maior que a configuração máxima (por exemplo, quando as configurações padrão são usadas), clicar na seta para cima diminui o valor da posição e clicar na seta para baixo a aumenta.

Um controle de botão de rotação sem uma janela buddy funciona como uma espécie de barra de rolagem simplificada. Por exemplo, um controle de guias exibe às vezes um controle de botão de rotação para permitir que o usuário faça a rolagem de guias adicionais na exibição.

Para obter mais informações sobre como usar CSpinButtonCtrl, confira Controles e Como usar CSpinButtonCtrl.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CSpinButtonCtrl

Requisitos

Cabeçalho: afxcmn.h

CSpinButtonCtrl::Create

Cria um controle de botão de rotação e o anexa a um objeto CSpinButtonCtrl.

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

Parâmetros

dwStyle
Especifica o estilo do controle de botão de rotação. Aplicar uma combinação de estilos de controle de botão ao controle. Esses estilos são descritos em Estilos de controle de acima-abaixo no SDK do Windows.

rect
Especifica o tamanho e a posição do controle de botão de rotação. Pode ser um objeto CRect ou uma estrutura RECT

pParentWnd
Um ponteiro para a janela pai do controle de botão de rotação, geralmente um CDialog. Não pode ser NULL.

Nid
Especifica a ID do controle de botão de rotação.

Valor de retorno

Um valor diferente de zero, se a inicialização tiver êxito. Caso contrário, 0.

Comentários

Você constrói um objeto CSpinButtonCtrl em duas etapas Primeiro, chama o construtor e, em seguida, chama Create, que cria o controle de botão de rotação e o anexa ao objeto CSpinButtonCtrl.

Para criar um controle de botão de rotação com estilos de janela estendidos, chame CSpinButtonCtrl::CreateEx em vez de Create.

CSpinButtonCtrl::CreateEx

Cria um controle (uma janela filho) e o associa ao objeto CSpinButtonCtrl.

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

Parâmetros

dwExStyle
Especifica o estilo estendido do controle que está sendo criado. Para obter uma lista de estilos estendidos de janelas, consulte o parâmetro dwExStyle para CreateWindowEx no SDK do Windows.

dwStyle
Especifica o estilo do controle de botão de rotação. Aplicar uma combinação de estilos de controle de botão ao controle. Esses estilos são descritos em Estilos de controle de acima-abaixo no SDK do Windows.

rect
Uma referência a uma estrutura RECT que descreve o tamanho e a posição da janela a ser criada, em coordenadas do cliente de pParentWnd.

pParentWnd
Um ponteiro para a janela que é pai do controle.

Nid
A ID da janela filho do controle.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Use CreateEx em vez de Criar para aplicar estilos estendidos do Windows, especificados pelo prefácio WS_EX_ de estilos estendidos do Windows.

CSpinButtonCtrl::CSpinButtonCtrl

Constrói um objeto CSpinButtonCtrl.

CSpinButtonCtrl();

CSpinButtonCtrl::GetAccel

Recupera informações de aceleração para um controle de botão de rotação.

UINT GetAccel(
    int nAccel,
    UDACCEL* pAccel) const;

Parâmetros

nAccel
Número de elementos na matriz especificada pelo pAccel.

pAccel
Ponteiro para uma matriz de estruturas UDACCEL que recebe informações de aceleração.

Valor de retorno

Número de estruturas de acelerador recuperadas.

CSpinButtonCtrl::GetBase

Recupera a base atual para um controle de botão de rotação.

UINT GetBase() const;

Valor de retorno

O valor base atual.

CSpinButtonCtrl::GetBuddy

Recupera um ponteiro para a janela buddy atual.

CWnd* GetBuddy() const;

Valor de retorno

Um ponteiro para a janela buddy atual.

CSpinButtonCtrl::GetPos

Recupera a posição atual de um controle de botão de rotação.

int GetPos() const;  int GetPos32(LPBOOL lpbError = NULL) const;

Parâmetros

lpbError
Um ponteiro para um valor booliano que é definido como zero se o valor for recuperado com êxito ou não zero se ocorrer um erro. Se esse parâmetro for definido como NULL, os erros não serão relatados.

Valor de retorno

A primeira versão retorna a posição atual de 16 bits na palavra de ordem inferior. A palavra de ordem superior não será zero se ocorrer um erro.

A segunda versão retorna a posição de 32 bits.

Comentários

O controle atualiza a posição atual dele ao processar o valor retornado com base na legenda da janela buddy. O controle retorna um erro se não houver nenhuma janela buddy ou se a legenda especificar um valor inválido ou de fora do intervalo.

CSpinButtonCtrl::GetRange

Recupera os limites superior e inferior (intervalo) para um controle de botão de rotação.

DWORD GetRange() const;

void GetRange(
    int& lower,
    int& upper) const;

void GetRange32(
    int& lower,
    int &upper) const;

Parâmetros

lower
Referência a um inteiro que recebe o limite inferior para o controle.

upper
Referência a um inteiro que recebe o limite superior para o controle.

Valor de retorno

A primeira versão retorna um valor de 32 bits que contém os limites superior e inferior. A palavra de ordem inferior é o limite superior para o controle e a palavra de ordem superior é o limite inferior.

Comentários

A função membro GetRange32 recupera o intervalo do controle de botão de rotação como um inteiro de 32 bits.

CSpinButtonCtrl::SetAccel

Define a aceleração para um controle de botão de rotação.

BOOL SetAccel(
    int nAccel,
    UDACCEL* pAccel);

Parâmetros

nAccel
Número de estruturas UDACCEL especificadas pelo pAccel.

pAccel
Ponteiro para uma matriz de estruturas UDACCEL que contêm informações de aceleração. Os elementos devem ser classificados em ordem crescente com base no membro nSec.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

CSpinButtonCtrl::SetBase

Define a base para um controle de botão de rotação.

int SetBase(int nBase);

Parâmetros

nBase
Novo valor base para o controle. Ele pode ser 10 para decimal ou 16 para hexadecimal.

Valor de retorno

Será o valor base anterior se bem-sucedido, ou zero se for fornecida uma base inválida.

Comentários

O valor base determina se a janela buddy exibe números em dígitos decimais ou hexadecimal. Números hexadecimais são sempre sem sinal e números decimais são assinados.

CSpinButtonCtrl::SetBuddy

Define a janela buddy para um controle de botão de rotação.

CWnd* SetBuddy(CWnd* pWndBuddy);

Parâmetros

pWndBuddy
Ponteiro para a nova janela buddy.

Valor de retorno

Um ponteiro para a janela buddy anterior.

Comentários

Um controle de rotação é quase sempre associado a outra janela, como um controle de edição, que exibe algum conteúdo. Essa outra janela é chamada de "buddy" do controle de rotação.

CSpinButtonCtrl::SetPos

Define a posição atual de um controle de botão de rotação.

int SetPos(int nPos);
int SetPos32(int nPos);

Parâmetros

nPos
Nova posição para o controle. Esse valor deve estar no intervalo especificado pelos limites superior e inferior para o controle.

Valor de retorno

A posição anterior (precisão de 16 bits para SetPos, precisão de 32 bits para SetPos32).

Comentários

SetPos32 define a posição de 32 bits.

CSpinButtonCtrl::SetRange

Define os limites superior e inferior (intervalo) para um controle de botão de rotação.

void SetRange(
    short nLower,
    short nUpper);

void SetRange32(
    int nLower,
    int nUpper);

Parâmetros

nLower e nUpper
Limites superiores e inferiores para o controle. Para SetRange, nenhum limite pode ser maior que UD_MAXVAL ou menor que UD_MINVAL e, além disso, a diferença entre os dois limites não pode exceder UD_MAXVAL. SetRange32 não impõe restrições aos limites, assim use um dos inteiros.

Comentários

A função membro SetRange32 define o intervalo de 32 bits para o controle de botão de rotação.

Observação

O intervalo padrão para o botão de rotação tem o conjunto máximo como zero (0) e o mínimo definido como 100. Como o valor máximo é menor que o valor mínimo, clicar na seta para cima diminuirá a posição e clicar na seta para baixo a aumentará. Use CSpinButtonCtrl::SetRange para ajustar esses valores.

Confira também

CMNCTRL2 de exemplo do MFC
Classe CWnd
Gráfico da hierarquia
Classe CSliderCtrl