Aracılığıyla paylaş


CRectTracker Sınıfı

Bir öğenin farklı şekilde görüntülenmesine, taşınmasına ve yeniden boyutlandırılmasına izin verir.

Sözdizimi

class CRectTracker

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CRectTracker::CRectTracker Bir CRectTracker nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CRectTracker::AdjustRect Dikdörtgen yeniden boyutlandırıldığında çağrılır.
CRectTracker::D raw Dikdörtgeni işler.
CRectTracker::D rawTrackerRect Bir CRectTracker nesnenin kenarını çizerken çağrılır.
CRectTracker::GetHandleMask Öğenin CRectTracker yeniden boyutlandırma tutamaçlarının maskesini almak için çağrılır.
CRectTracker::GetTrueRect Yeniden boyutlandırma tutamaçları da dahil olmak üzere dikdörtgenin genişliğini ve yüksekliğini döndürür.
CRectTracker::HitTest İmlecin nesneyle ilgili CRectTracker geçerli konumunu döndürür.
CRectTracker::NormalizeHit İsabet testi kodunu normalleştirir.
CRectTracker::OnChangedRect Dikdörtgen yeniden boyutlandırıldığında veya taşındığında çağrılır.
CRectTracker::SetCursor İmleci dikdörtgen üzerindeki konumuna bağlı olarak ayarlar.
CRectTracker::Track Kullanıcının dikdörtgeni işlemesine izin verir.
CRectTracker::TrackRubberBand Kullanıcının seçimi "kauçuk bant" olarak eklemesine izin verir.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CRectTracker::m_nHandleSize Yeniden boyutlandırma tutamaçlarının boyutunu belirler.
CRectTracker::m_nStyle İzleyicinin geçerli stili.
CRectTracker::m_rect Dikdörtgenin geçerli konumu (piksel cinsinden).
CRectTracker::m_sizeMin En düşük dikdörtgen genişliğini ve yüksekliğini belirler.

Açıklamalar

CRectTracker temel sınıfına sahip değildir.

sınıfı, kullanıcının grafik arabirim kullanarak OLE öğeleriyle etkileşim kurmasına izin verecek şekilde tasarlanmış olsa CRectTracker da, kullanımı OLE özellikli uygulamalarla sınırlı değildir. Bu tür bir kullanıcı arabiriminin gerekli olduğu her yerde kullanılabilir.

CRectTracker kenarlıklar düz veya noktalı çizgiler olabilir. Öğeye taranmış kenarlık verilebilir veya öğenin farklı durumlarını göstermek için taranmış desenle yer paylaşımlı olabilir. Öğenin dış veya iç kenarlıklarına sekiz yeniden boyutlandırma tutamacı yerleştirebilirsiniz. (Yeniden boyutlandırma tutamaçlarının açıklaması için bkz. GetHandleMask.) Son olarak, yeniden CRectTracker boyutlandırma sırasında öğenin yönünü değiştirmenize olanak tanır.

kullanmak CRectTrackeriçin bir CRectTracker nesne oluşturup hangi görüntü durumlarının başlatılacağını belirtin. Ardından, kullanıcı görseline nesneyle CRectTracker ilişkili OLE öğesinin geçerli durumu hakkında geri bildirim sağlamak için bu arabirimi kullanabilirsiniz.

kullanma CRectTrackerhakkında daha fazla bilgi için İzleyiciler makalesine bakın.

Devralma Hiyerarşisi

CRectTracker

Gereksinimler

Üst bilgi: afxext.h

CRectTracker::AdjustRect

İzleme dikdörtgeni yeniden boyutlandırma tutamacı kullanılarak yeniden boyutlandırıldığında çerçeve tarafından çağrılır.

virtual void AdjustRect(
    int nHandle,
    LPRECT lpRect);

Parametreler

nHandle
Kullanılan tanıtıcı dizini.

lpRect
Dikdörtgenin geçerli boyutuna işaret eden işaretçi. (Dikdörtgenin boyutu, yüksekliği ve genişliğiyle verilir.)

Açıklamalar

Bu işlevin varsayılan davranışı, dikdörtgenin yönünün yalnızca ters çevirmeye izin verildiğinde ve TrackRubberBand çağrıldığında Track değişmesini sağlar.

Bir sürükleme işlemi sırasında izleme dikdörtgeninin ayarlanmasını denetlemek için bu işlevi geçersiz kılın. Yöntemlerden biri, döndürmeden önce lpRect tarafından belirtilen koordinatları ayarlamaktır.

tarafından CRectTrackerdoğrudan desteklenmeyen kılavuza yaslama veya en boy oranını koruma gibi özel özellikler, bu işlevi geçersiz kılarak uygulanabilir.

CRectTracker::CRectTracker

Bir CRectTracker nesne oluşturur ve başlatır.

CRectTracker();

CRectTracker(
    LPCRECT lpSrcRect,
    UINT nStyle);

Parametreler

lpSrcRect
Dikdörtgen nesnesinin koordinatları.

nStyle
Nesnenin CRectTracker stilini belirtir. Aşağıdaki stiller desteklenir:

  • CRectTracker::solidLine Dikdörtgen kenarlık için düz bir çizgi kullanın.

  • CRectTracker::dottedLine Dikdörtgen kenarlık için noktalı çizgi kullanın.

  • CRectTracker::hatchedBorder Dikdörtgen kenarlık için taranmış desen kullanın.

  • CRectTracker::resizeInside Dikdörtgenin içinde bulunan tutamaçları yeniden boyutlandırın.

  • CRectTracker::resizeOutside Dikdörtgenin dışında bulunan tutamaçları yeniden boyutlandırın.

  • CRectTracker::hatchInside Taranmış desen dikdörtgenin tamamını kaplar.

Açıklamalar

Varsayılan oluşturucu, nesneyi lpSrcRect değerleriyle başlatır CRectTracker ve diğer boyutları sistem varsayılanlarına başlatır. Nesnesi parametre m_rect olmadan oluşturulursa ve m_nStyle veri üyeleri başlatılmaz.

CRectTracker::D raw

Dikdörtgenin dış çizgilerini ve iç bölgesini çizmek için bu işlevi çağırın.

void Draw(CDC* pDC) const;

Parametreler

pDC
Üzerine çizilen cihaz bağlamı işaretçisi.

Açıklamalar

İzleyicinin stili, çizimin nasıl yapıldığını belirler. Kullanılabilir stiller hakkında daha fazla bilgi için CRectTracker oluşturucuya bakın.

CRectTracker::D rawTrackerRect

veya TrackRubberBand üye işlevinin içindeyken izleyicinin konumu her değiştiğinde Track çerçeve tarafından çağrılır.

virtual void DrawTrackerRect(
    LPCRECT lpRect,
    CWnd* pWndClipTo,
    CDC* pDC,
    CWnd* pWnd);

Parametreler

lpRect
Çizecek dikdörtgeni RECT içeren işaretçi.

pWndClipTo
Dikdörtgeni kırpmak için kullanılacak pencere işaretçisi.

pDC
Üzerine çizilen cihaz bağlamı işaretçisi.

pWnd
Çizimin gerçekleşeceği pencerenin işaretçisi.

Açıklamalar

Varsayılan uygulama, noktalı bir dikdörtgen çizen öğesine bir çağrı CDC::DrawFocusRectyapar.

İzleme işlemi sırasında farklı geri bildirim sağlamak için bu işlevi geçersiz kılın.

CRectTracker::GetHandleMask

Çerçeve, bir dikdörtgenin yeniden boyutlandırma tutamaçlarının maskesini almak için bu üye işlevini çağırır.

virtual UINT GetHandleMask() const;

Dönüş Değeri

Öğenin yeniden boyutlandırma tutamaçlarının maskesi CRectTracker .

Açıklamalar

Yeniden boyutlandırma tutamaçları dikdörtgenin kenarlarında ve köşelerinde görünür ve kullanıcının dikdörtgenin şeklini ve boyutunu denetlemesine olanak tanır.

Dikdörtgenin 0-7 numaralı 8 yeniden boyutlandırma tutamacı vardır. Her yeniden boyutlandırma tutamacı maskede bir bit ile gösterilir; bu bitin değeri 2^ n'dir; burada n , yeniden boyutlandırma tutamacı numarasıdır. Bit 0-3, saat yönünde hareket eden sol üst kısımdan başlayarak köşe yeniden boyutlandırma tutamaçlarına karşılık gelir. Bit 4-7, saat yönünde en üstten başlayan yan yeniden boyutlandırma tutamaçlarına karşılık gelir. Aşağıdaki çizimde dikdörtgenin yeniden boyutlandırma tutamaçları ve karşılık gelen yeniden boyutlandırma tutamaç numaraları ve değerleri gösterilmektedir:

Tanıtıcı numaralarını yeniden boyutlandır.

varsayılan uygulaması GetHandleMask , yeniden boyutlandırma tutamaçlarının görünmesi için bitlerin maskesini döndürür. Tek bit açıksa ilgili yeniden boyutlandırma tutamacı çizilir.

Belirtilen yeniden boyutlandırma tutamaçlarını gizlemek veya göstermek için bu üye işlevini geçersiz kılın.

CRectTracker::GetTrueRect

Dikdörtgenin koordinatlarını almak için bu işlevi çağırın.

void GetTrueRect(LPRECT lpTrueRect) const;

Parametreler

lpTrueRect
Nesnenin RECT cihaz koordinatlarını içerecek yapıya yönelik CRectTracker işaretçi.

Açıklamalar

Dikdörtgenin boyutları, dış kenarlıkta bulunan yeniden boyutlandırma tutamaçlarının yüksekliğini ve genişliğini içerir. Döndüren lpTrueRect, cihaz koordinatlarında her zaman normalleştirilmiş bir dikdörtgendir.

CRectTracker::HitTest

Kullanıcının yeniden boyutlandırma tutamacını yakalayıp yakalamadığını öğrenmek için bu işlevi çağırın.

int HitTest(CPoint point) const;

Parametreler

nokta
Test etmek için cihaz koordinatlarında nokta.

Dönüş Değeri

Döndürülen değer numaralandırılmış türü CRectTracker::TrackerHit temel alır ve aşağıdaki değerlerden birine sahip olabilir:

  • CRectTracker::hitNothing -1

  • CRectTracker::hitTopLeft 0

  • CRectTracker::hitTopRight 1

  • CRectTracker::hitBottomRight 2

  • CRectTracker::hitBottomLeft 3

  • CRectTracker::hitTop 4

  • CRectTracker::hitRight 5

  • CRectTracker::hitBottom 6

  • CRectTracker::hitLeft 7

  • CRectTracker::hitMiddle 8

CRectTracker::m_nHandleSize

Yeniden boyutlandırma tutamaçlarının CRectTracker piksel cinsinden boyutu.

int m_nHandleSize;

Açıklamalar

Varsayılan sistem değeriyle başlatılır.

CRectTracker::m_rect

dikdörtgenin istemci koordinatlarındaki (piksel) geçerli konumu.

CRect m_rect;

CRectTracker::m_sizeMin

Dikdörtgenin en küçük boyutu.

CSize m_sizeMin;

Açıklamalar

Hem varsayılan değerler hem cx cyde , kenarlık genişliği için varsayılan sistem değerinden hesaplanır. Bu veri üyesi yalnızca üye işlevi tarafından AdjustRect kullanılır.

CRectTracker::m_nStyle

Dikdörtgenin geçerli stili.

UINT m_nStyle;

Açıklamalar

Olası stillerin listesi için bkz . CRectTracker::CRectTracker .

CRectTracker::NormalizeHit

Ters çevrilmiş olabilecek bir tanıtıcıyı dönüştürmek için bu işlevi çağırın.

int NormalizeHit(int nHandle) const;

Parametreler

nHandle
Kullanıcı tarafından seçilen tanıtıcı.

Dönüş Değeri

Normalleştirilmiş tanıtıcının dizini.

Açıklamalar

CRectTracker::Track Ters çevirmeye izin verildiğinde veya CRectTracker::TrackRubberBand çağrıldığında, dikdörtgenin x ekseninde, y ekseninde veya her ikisinde de ters çevrilmiş olması mümkündür. Bu durumda, HitTest dikdörtgene göre de ters çevrilmiş tanıtıcılar döndürür. Geri bildirim, değiştirilecek dikdörtgen veri yapısının parçasına değil dikdörtgenin ekran konumuna bağlı olduğundan, bu, imleç geri bildirimini çizmek için uygun değildir.

CRectTracker::OnChangedRect

çağrısı sırasında izleyici dikdörtgeni her değiştiğinde çerçeve tarafından çağrılır Track.

virtual void OnChangedRect(const CRect& rectOld);

Parametreler

rectOld
Nesnenin eski cihaz koordinatlarını CRectTracker içerir.

Açıklamalar

Bu işlev çağrıldığında, ile DrawTrackerRect çekilen tüm geri bildirimler kaldırılmıştır. Bu işlevin varsayılan uygulaması hiçbir şey yapmaz.

Dikdörtgen yeniden boyutlandırıldıktan sonra herhangi bir eylem gerçekleştirmek istediğinizde bu işlevi geçersiz kılın.

CRectTracker::SetCursor

İmleç şeklini nesnenin bölgesinin üzerindeyken CRectTracker değiştirmek için bu işlevi çağırın.

BOOL SetCursor(
    CWnd* pWnd,
    UINT nHitTest) const;

Parametreler

pWnd
İmleci içeren pencereyi gösterir.

nHitTest
WM_SETCURSOR iletisinden önceki isabet testinin sonuçları.

Dönüş Değeri

Önceki isabet izleyici dikdörtgeninin üzerindeyse sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bu işlevi pencerenizin WM_SETCURSOR iletisini işleyen işlevinin içinden çağırın (genellikle OnSetCursor).

CRectTracker::Track

Dikdörtgeni yeniden boyutlandırmak için kullanıcı arabirimini görüntülemek için bu işlevi çağırın.

BOOL Track(
    CWnd* pWnd,
    CPoint point,
    BOOL bAllowInvert = FALSE,
    CWnd* pWndClipTo = NULL);

Parametreler

pWnd
Dikdörtgeni içeren pencere nesnesi.

nokta
İstemci alanına göre geçerli fare konumunun cihaz koordinatları.

bAllowInvert
TRUE ise, dikdörtgen x ekseni veya y ekseni boyunca ters çevrilebilir; aksi takdirde YANLIŞ.

pWndClipTo
Çizim işlemlerinin kırpılacağı pencere. NULL ise, kırpma dikdörtgeni olarak pWnd kullanılır.

Dönüş Değeri

ESC tuşuna basılırsa izleme işlemi durdurulmuş olur, izleyicide depolanan dikdörtgen değiştirilmez ve 0 döndürülür. Değişiklik işlenirse, fareyi hareket ettirip sol fare düğmesini bırakarak yeni konum ve/veya boyut izleyicinin dikdörtgeninde kaydedilir ve sıfır olmayan döndürülür.

Açıklamalar

Bu genellikle uygulamanızın iletiyi işleyen işlevinin içinden çağrılır WM_LBUTTONDOWN (genellikle OnLButtonDown).

Bu işlev, kullanıcı sol fare düğmesini serbest bırakana, ESC tuşuna basana veya sağ fare düğmesine basana kadar fareyi yakalar. Kullanıcı fare imlecini hareket ettirdikçe geri bildirim ve OnChangedRectçağrılarak DrawTrackerRect güncelleştirilir.

bAllowInvert TRUE ise, izleme dikdörtgeni x ekseninde veya y ekseninde ters çevrilebilir.

CRectTracker::TrackRubberBand

Kauçuk bant seçimi yapmak için bu işlevi çağır.

BOOL TrackRubberBand(
    CWnd* pWnd,
    CPoint point,
    BOOL bAllowInvert = TRUE);

Parametreler

pWnd
Dikdörtgeni içeren pencere nesnesi.

nokta
İstemci alanına göre geçerli fare konumunun cihaz koordinatları.

bAllowInvert
TRUE ise, dikdörtgen x ekseni veya y ekseni boyunca ters çevrilebilir; aksi takdirde YANLIŞ.

Dönüş Değeri

Fare hareket ettiyse ve dikdörtgen boş değilse sıfır olmayan; aksi takdirde 0.

Açıklamalar

Genellikle WM_LBUTTONDOWN iletisini işleyen uygulamanızın işlevinin içinden çağrılır (genellikle OnLButtonDown).

Bu işlev, kullanıcı sol fare düğmesini serbest bırakana, ESC tuşuna basana veya sağ fare düğmesine basana kadar fareyi yakalar. Kullanıcı fare imlecini hareket ettirdikçe geri bildirim ve OnChangedRectçağrılarak DrawTrackerRect güncelleştirilir.

İzleme, sağ alt tutamacından kauçuk bant tipi bir seçimle gerçekleştirilir. Ters çevirmeye izin veriliyorsa, dikdörtgen yukarı, sola veya aşağı ve sağa sürüklenerek boyutlandırılabilir.

Ayrıca bkz.

MFC Örnek İzleyicisi
MFC Örneği DRAWCLI
Hiyerarşi Grafiği
COleResizeBar Sınıfı
CRect Sınıfı