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
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