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.
Permite que um item seja exibido, movido e redimensionado de diferentes formas.
Sintaxe
class CRectTracker
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CRectTracker::CRectTracker | Constrói um CRectTracker objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
| CRectTracker::AdjustRect | Chamada quando o retângulo é redimensionado. |
| CRectTracker::D raw | Renderiza o retângulo. |
| CRectTracker::D rawTrackerRect | Chamado ao desenhar a borda de um CRectTracker objeto. |
| CRectTracker::GetHandleMask | Chamado para obter a máscara das alças de redimensionamento de um CRectTracker item. |
| CRectTracker::GetTrueRect | Devolve largura e altura do retângulo, incluindo pegas de redimensionamento. |
| CRectTracker::HitTest | Devolve a posição atual do cursor relacionada com o CRectTracker objeto. |
| CRectTracker::NormalizeHit | Normaliza um código de teste de acerto. |
| CRectTracker::OnChangedRect | Chamada quando o retângulo foi redimensionado ou movido. |
| CRectTracker::SetCursor | Define o cursor, dependendo da sua posição sobre o retângulo. |
| CRectTracker::Track | Permite ao utilizador manipular o retângulo. |
| CRectTracker::TrackRubberBand | Permite ao utilizador "elástico" a seleção. |
Membros de Dados Públicos
| Nome | Description |
|---|---|
| CRectTracker::m_nHandleSize | Determina o tamanho das pegas de redimensionamento. |
| CRectTracker::m_nStyle | Estilo(s) atual(is) do tracker. |
| CRectTracker::m_rect | Posição atual (em pixels) do retângulo. |
| CRectTracker::m_sizeMin | Determina a largura e altura mínimas do retângulo. |
Observações
CRectTracker não tem uma classe base.
Embora a CRectTracker classe tenha sido concebida para permitir ao utilizador interagir com itens OLE através de uma interface gráfica, a sua utilização não se restringe a aplicações com capacidade OLE. Pode ser usado em qualquer lugar que tal interface de utilizador seja necessária.
CRectTracker As fronteiras podem ser sólidas ou linhas pontilhadas. O item pode receber uma borda com hachute ou ser sobreposto com um padrão de hachuras para indicar diferentes estados do item. Pode colocar oito pegas de redimensionamento tanto na borda exterior como na interior do item. (Para uma explicação das alavancas de redimensionamento, veja GetHandleMask.) Finalmente, a CRectTracker permite alterar a orientação de um item durante o redimensionamento.
Para usar CRectTracker, constrói um CRectTracker objeto e especifique quais os estados de exibição que são inicializados. Pode então usar esta interface para dar ao utilizador feedback visual sobre o estado atual do item OLE associado ao CRectTracker objeto.
Para mais informações sobre o uso CRectTrackerde , consulte o artigo Rastreadores.
Hierarquia de herança
CRectTracker
Requerimentos
Cabeçalho: afxext.h
CRectTracker::AdjustRect
Chamado pelo framework quando o retângulo de seguimento é redimensionado usando uma alavanca de redimensionamento.
virtual void AdjustRect(
int nHandle,
LPRECT lpRect);
Parâmetros
nHandle
Índice do cabo utilizado.
lpRect
Apontar para o tamanho atual do retângulo. (O tamanho de um retângulo é dado pela sua altura e largura.)
Observações
O comportamento padrão desta função permite que a orientação do retângulo só mude quando Track e TrackRubberBand são chamados com a inversão permitida.
Anule esta função para controlar o ajuste do retângulo de seguimento durante uma operação de arrasto. Um método é ajustar as coordenadas especificadas pelo lpRect antes de regressar.
Funcionalidades especiais que não são diretamente suportadas por CRectTracker, como snap-to-grid ou keep-aspect-ratio, podem ser implementadas sobrepondo esta função.
CRectTracker::CRectTracker
Cria e inicializa um CRectTracker objeto.
CRectTracker();
CRectTracker(
LPCRECT lpSrcRect,
UINT nStyle);
Parâmetros
lpSrcRect
As coordenadas do objeto retangular.
nStyle
Especifica o estilo do CRectTracker objeto. Os seguintes estilos são suportados:
CRectTracker::solidLineUse uma linha contínua para a borda retangular.CRectTracker::dottedLineUse uma linha pontilhada para a borda retangular.CRectTracker::hatchedBorderUse um padrão de hachura para a borda retangular.CRectTracker::resizeInsidePuxadores de redimensionamento localizados dentro do retângulo.CRectTracker::resizeOutsidePuxadores de redimensionamento localizados fora do retângulo.CRectTracker::hatchInsideO padrão de hachuras cobre todo o retângulo.
Observações
O construtor por defeito inicializa o CRectTracker objeto com os valores de lpSrcRect e inicializa outros tamanhos para os valores predefinidos do sistema. Se o objeto for criado sem parâmetros, os m_rect membros dos dados and m_nStyle não são inicializados.
CRectTracker::D raw
Chame esta função para desenhar as linhas exteriores e a região interior do retângulo.
void Draw(CDC* pDC) const;
Parâmetros
pDC
Apontar para o contexto do dispositivo onde desenhar.
Observações
O estilo do rastreador determina como o desenho é feito. Consulte o construtor para CRectTracker mais informações sobre os estilos disponíveis.
CRectTracker::D rawTrackerRect
É chamado pelo framework sempre que a posição do rastreador mudou enquanto está dentro da Track função do membro ou TrackRubberBand .
virtual void DrawTrackerRect(
LPCRECT lpRect,
CWnd* pWndClipTo,
CDC* pDC,
CWnd* pWnd);
Parâmetros
lpRect
Apontador para o RECT que contém o retângulo a desenhar.
pWndClipTo
Apontador para a janela para usar no recorte do retângulo.
pDC
Apontar para o contexto do dispositivo onde desenhar.
pWnd
Apontar para a janela onde o desenho irá ocorrer.
Observações
A implementação padrão faz uma chamada para CDC::DrawFocusRect, que desenha um retângulo pontilhado.
Anule esta função para fornecer feedback diferente durante a operação de rastreamento.
CRectTracker::GetHandleMask
A estrutura chama esta função membro para recuperar a máscara dos handles de redimensionamento de um retângulo.
virtual UINT GetHandleMask() const;
Valor de retorno
A máscara das pegas de redimensionamento de um CRectTracker item.
Observações
As pegas de redimensionamento aparecem nas laterais e cantos do retângulo e permitem ao utilizador controlar a forma e o tamanho do retângulo.
Um retângulo tem 8 pegas de redimensionamento numeradas de 0 a 7. Cada alavanca de redimensionamento é representada por um bit na máscara; O valor desse bit é 2^ N, onde n é o número da alavanca de redimensionamento. Os bits 0-3 correspondem às maçanetas de redimensionamento dos cantos, começando no canto superior esquerdo movendo-se no sentido dos ponteiros do relógio. Os bits 4-7 correspondem às alças de redimensionamento laterais que começam no topo, movendo-se no sentido dos ponteiros do relógio. A ilustração seguinte mostra as alças de redimensionamento de um retângulo e os seus correspondentes números e valores de alças de redimensionamento:
A implementação padrão de GetHandleMask devolve a máscara dos bits para que apareçam as alças de redimensionamento. Se o bit único estiver ligado, a alavanca de redimensionamento correspondente será desenhada.
Substitua esta função de membro para ocultar ou mostrar as alavancas de redimensionamento indicadas.
CRectTracker::GetTrueRect
Chame esta função para recuperar as coordenadas do retângulo.
void GetTrueRect(LPRECT lpTrueRect) const;
Parâmetros
lpTrueRect
Apontador para a RECT estrutura que irá conter as coordenadas do dispositivo do CRectTracker objeto.
Observações
As dimensões do retângulo incluem a altura e a largura de quaisquer pegas de redimensionamento localizadas na borda exterior. Ao regressar, o lpTrueRect é sempre um retângulo normalizado nas coordenadas do dispositivo.
CRectTracker::HitTest
Ligue para esta função para saber se o utilizador escolheu uma alavanca de redimensionamento.
int HitTest(CPoint point) const;
Parâmetros
ponto
O objetivo, nas coordenadas do dispositivo, é testar.
Valor de retorno
O valor devolvido baseia-se no tipo CRectTracker::TrackerHit enumerado e pode ter um dos seguintes valores:
CRectTracker::hitNothing-1CRectTracker::hitTopLeft0CRectTracker::hitTopRight1CRectTracker::hitBottomRight2CRectTracker::hitBottomLeft3CRectTracker::hitTop4CRectTracker::hitRight5CRectTracker::hitBottom6CRectTracker::hitLeft7CRectTracker::hitMiddle8
CRectTracker::m_nHandleSize
O tamanho, em pixels, das CRectTracker pegas de redimensionamento.
int m_nHandleSize;
Observações
Inicializado com o valor padrão do sistema.
CRectTracker::m_rect
A posição atual do retângulo nas coordenadas do cliente (píxeis).
CRect m_rect;
CRectTracker::m_sizeMin
O tamanho mínimo do retângulo.
CSize m_sizeMin;
Observações
Ambos os valores por defeito, cx e cy, são calculados a partir do valor padrão do sistema para a largura da borda. Este membro de dados é usado apenas pela AdjustRect função membro.
CRectTracker::m_nStyle
Estilo atual do retângulo.
UINT m_nStyle;
Observações
Consulte CRectTracker::CRectTracker para uma lista de estilos possíveis.
CRectTracker::NormalizeHit
Chame esta função para converter uma alça potencialmente invertida.
int NormalizeHit(int nHandle) const;
Parâmetros
nHandle
Handle selecionado pelo utilizador.
Valor de retorno
O índice do cabo normalizado.
Observações
Quando CRectTracker::Track ou CRectTracker::TrackRubberBand é chamado com a inversão permitida, é possível que o retângulo seja invertido no eixo x, no eixo y ou em ambos. Quando isto acontecer, HitTest devolverá as alavancas que também estão invertidas em relação ao retângulo. Isto é inadequado para o feedback do cursor de desenho porque o feedback depende da posição do ecrã do retângulo, e não da parte da estrutura de dados do retângulo que será modificada.
CRectTracker::OnChangedRect
Chamada pela framework sempre que o retângulo do tracker mudou durante uma chamada para Track.
virtual void OnChangedRect(const CRect& rectOld);
Parâmetros
rectOld
Contém as coordenadas antigas do dispositivo do CRectTracker objeto.
Observações
No momento em que esta função é chamada, todo o feedback desenhado DrawTrackerRect com foi removido. A implementação padrão desta função não faz nada.
Anule esta função quando quiser realizar qualquer ação depois de o retângulo ter sido redimensionado.
CRectTracker::SetCursor
Chame esta função para alterar a forma do cursor enquanto está sobre a CRectTracker região do objeto.
BOOL SetCursor(
CWnd* pWnd,
UINT nHitTest) const;
Parâmetros
pWnd
Aponta para a janela que atualmente contém o cursor.
nHitTest
Resultados do teste de acerto anterior, da mensagem WM_SETCURSOR.
Valor de retorno
Diferente de zero se o impacto anterior foi sobre o retângulo do rastreador; caso contrário, 0.
Observações
Chame esta função a partir da função da sua janela que gere a mensagem de WM_SETCURSOR (tipicamente OnSetCursor).
CRectTracker::Track
Chame esta função para mostrar a interface do utilizador e redimensionar o retângulo.
BOOL Track(
CWnd* pWnd,
CPoint point,
BOOL bAllowInvert = FALSE,
CWnd* pWndClipTo = NULL);
Parâmetros
pWnd
O objeto janela que contém o retângulo.
ponto
Coordenadas do dispositivo com a posição atual do rato em relação à área do cliente.
bAllowInvert
Se TRUE, o retângulo pode ser invertido ao longo do eixo x ou y; caso contrário, FALSO.
pWndClipTo
A janela onde as operações de desenho serão recortadas. Se for NULL, pWnd é usado como retângulo de recorte.
Valor de retorno
Se a tecla ESC for pressionada, o processo de rastreamento é interrompido, o retângulo armazenado no rastreador não é alterado e o 0 é devoluído. Se a alteração for confirmada, ao mover o rato e largar o botão esquerdo do rato, a nova posição e/ou tamanho é registada no retângulo do rastreador e o valor diferente de zero é devolvido.
Observações
Isto é normalmente chamado a partir da função da sua aplicação que gere a WM_LBUTTONDOWN mensagem (tipicamente OnLButtonDown).
Esta função captura o rato até que o utilizador solte o botão esquerdo, pressione a tecla ESC ou pressione o botão direito do rato. À medida que o utilizador move o cursor do rato, o feedback é atualizado chamando DrawTrackerRect e OnChangedRect.
Se o bAllowInvert for VERDADEIRO, o retângulo de seguimento pode ser invertido tanto no eixo x como no eixo y.
CRectTracker::TrackRubberBand
Chame esta função para fazer a seleção do elástico.
BOOL TrackRubberBand(
CWnd* pWnd,
CPoint point,
BOOL bAllowInvert = TRUE);
Parâmetros
pWnd
O objeto janela que contém o retângulo.
ponto
Coordenadas do dispositivo com a posição atual do rato em relação à área do cliente.
bAllowInvert
Se TRUE, o retângulo pode ser invertido ao longo do eixo x ou y; caso contrário, FALSO.
Valor de retorno
Diferente de zero se o rato se mexeu e o retângulo não estiver vazio; caso contrário, 0.
Observações
Normalmente é chamada a partir da função da sua aplicação que gere a mensagem WM_LBUTTONDOWN (tipicamente OnLButtonDown).
Esta função captura o rato até que o utilizador solte o botão esquerdo, pressione a tecla ESC ou pressione o botão direito do rato. À medida que o utilizador move o cursor do rato, o feedback é atualizado chamando DrawTrackerRect e OnChangedRect.
O rastreamento é feito com uma seleção tipo elástico a partir da pega inferior direita. Se for permitido inverter, o retângulo pode ser dimensionado arrastando-o para cima e para a esquerda ou para baixo e para a direita.
Consulte também
MFC Sample TRACKER
Exemplo MFC DRAWCLI
Gráfico de Hierarquia
Classe COleResizeBar
Classe CRect