Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Outro recurso fornecido com rastreadores é o "borracha-banda" seleção, o que permite que um usuário selecionar vários itens OLE arrastando um retângulo de dimensionamento ao redor dos itens a serem selecionados.Quando o usuário solta botão do mouse esquerdo do mouse, itens dentro da região selecionada pelo usuário são selecionados e podem ser manipulados pelo usuário.Por exemplo, o usuário pode arrastar a seleção em outro aplicativo de contêiner.
Implementar este recurso requer algum código adicional no WM_LBUTTONDOWN função de manipulador.
O exemplo de código a seguir implementa elástica seleção e recursos adicionais.
else if (m_Tracker.HitTest(point) < 0)
{
// just to demonstrate CRectTracker::TrackRubberBand
CRectTracker trackerRubber;
if (trackerRubber.TrackRubberBand(this, point, TRUE))
{
MessageBeep(0); // beep indicates TRUE
// See if rubber band intersects
// with the doc's tracker
CRect rectT;
// so intersect rect works
trackerRubber.m_rect.NormalizeRect();
if (rectT.IntersectRect(trackerRubber.m_rect, m_Tracker.m_rect))
{
// If so, put resize handles on it (i.e. select it)
if (m_Tracker.m_nStyle & CRectTracker::resizeInside)
{
// swap from resize inside to resize outside for effect
m_Tracker.m_nStyle &= ~CRectTracker::resizeInside;
m_Tracker.m_nStyle |= CRectTracker::resizeOutside;
}
else
{
// Just use inside resize handles on first time
m_Tracker.m_nStyle &= ~CRectTracker::resizeOutside;
m_Tracker.m_nStyle |= CRectTracker::resizeInside;
}
GetDocument()->SetModifiedFlag();
GetDocument()->UpdateAllViews(NULL);
}
}
}
Se você deseja permitir reversível orientação do controlador durante a formação de bandas de borracha, você deve chamar CRectTracker::TrackRubberBand com o terceiro parâmetro conjunto para TRUE.Lembre-se de que a orientação reversível permitindo às vezes, fará com que CRectTracker::m_rect deve ser invertida.Isso pode ser corrigido por uma telefonar para CRect::NormalizeRect.
Para obter mais informações, consulte Itens de cliente do contêiner and Personalizando arrastar e soltar.
Consulte também
Conceitos
Rastreadores: Implementação de rastreadores em seu aplicativo OLE