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 CRectTracker
iç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 CRectTracker
hakkı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 CRectTracker
doğ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::DrawFocusRect
yapar.
İ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:
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
-1CRectTracker::hitTopLeft
0CRectTracker::hitTopRight
1CRectTracker::hitBottomRight
2CRectTracker::hitBottomLeft
3CRectTracker::hitTop
4CRectTracker::hitRight
5CRectTracker::hitBottom
6CRectTracker::hitLeft
7CRectTracker::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
cy
de , 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ı