CScrollBar
Sınıf
Windows kaydırma çubuğu denetiminin işlevselliğini sağlar.
class CScrollBar : public CWnd
Veri Akışı Adı | Açıklama |
---|---|
CScrollBar::CScrollBar |
Bir CScrollBar nesne oluşturur. |
Veri Akışı Adı | Açıklama |
---|---|
CScrollBar::Create |
Windows kaydırma çubuğunu oluşturur ve nesneye CScrollBar ekler. |
CScrollBar::EnableScrollBar |
Kaydırma çubuğunun bir veya her iki oklarını etkinleştirir veya devre dışı bırakır. |
CScrollBar::GetScrollBarInfo |
Bir SCROLLBARINFO yapı kullanarak kaydırma çubuğu hakkındaki bilgileri alır. |
CScrollBar::GetScrollInfo |
Kaydırma çubuğu hakkındaki bilgileri alır. |
CScrollBar::GetScrollLimit |
Kaydırma çubuğunun sınırını alır |
CScrollBar::GetScrollPos |
Kaydırma kutusunun geçerli konumunu alır. |
CScrollBar::GetScrollRange |
Verilen kaydırma çubuğu için geçerli en düşük ve en yüksek kaydırma çubuğu konumlarını alır. |
CScrollBar::SetScrollInfo |
Kaydırma çubuğu hakkındaki bilgileri ayarlar. |
CScrollBar::SetScrollPos |
Kaydırma kutusunun geçerli konumunu ayarlar. |
CScrollBar::SetScrollRange |
Verilen kaydırma çubuğu için en düşük ve en yüksek konum değerlerini ayarlar. |
CScrollBar::ShowScrollBar |
Kaydırma çubuğunu gösterir veya gizler. |
İki adımda kaydırma çubuğu denetimi oluşturursunuz. İlk olarak, nesneyi oluşturmak için oluşturucuyu CScrollBar
çağırın CScrollBar
, ardından Üye işlevini çağırarak Create
Windows kaydırma çubuğu denetimini oluşturun ve nesneye CScrollBar
ekleyin.
İletişim kutusunda (iletişim kutusu kaynağı aracılığıyla) bir CScrollBar
nesne oluşturursanız, CScrollBar
kullanıcı iletişim kutusunu kapattığında nesnesi otomatik olarak yok edilir.
Pencere içinde bir CScrollBar
nesne oluşturursanız, nesneyi yok etmeniz de gerekebilir.
Nesneyi yığında oluşturursanız CScrollBar
, nesne otomatik olarak yok edilir. işlevini kullanarak new
yığında nesnesi oluşturursanızCScrollBar
, kullanıcı Windows kaydırma çubuğunu sonlandırdığında yok etmek için nesne üzerinde çağrısında delete
bulunması gerekir.
Nesnede CScrollBar
herhangi bir bellek ayırırsanız, ayırmaları atmak için yıkıcıyı geçersiz kılın CScrollBar
.
kullanma CScrollBar
hakkında daha fazla bilgi için bkz . Denetimler.
CScrollBar
Üstbilgi: afxwin.h
Windows kaydırma çubuğunu oluşturur ve nesneye CScrollBar
ekler.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
dwStyle
Kaydırma çubuğunun stilini belirtir. Kaydırma çubuğu stillerinin herhangi bir bileşimini kaydırma çubuğuna uygulayın.
rect
Kaydırma çubuğunun boyutunu ve konumunu belirtir. Yapı RECT
veya CRect
nesne olabilir.
pParentWnd
Kaydırma çubuğunun üst penceresini ( genellikle bir CDialog
nesne) belirtir. Bu olmamalıdır NULL
.
nID
Kaydırma çubuğunun denetim kimliği.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
İki adımda bir CScrollBar
nesne oluşturursunuz. İlk olarak, nesnesini oluşturan oluşturucuyu çağırınCScrollBar
; ardından ilişkili Windows kaydırma çubuğunu oluşturup başlatan ve nesnesine ekleyen öğesini çağırınCreate
CScrollBar
.
Kaydırma çubuğuna aşağıdaki pencere stillerini uygulayın:
WS_CHILD
Her zamanWS_VISIBLE
GeneldeWS_DISABLED
NadirenWS_GROUP
Denetimleri gruplandırmak için
// Example 1:
// Create a horizontal CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). The scroll bar is NOT visible until the
// call ShowScrollBar() is made. m_ScrollBarHorz is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarHorz.Create(SBS_HORZ | SBS_TOPALIGN | WS_CHILD,
CRect(5, 5, 100, 30), this, IDC_SCROLLBARCTRL));
m_ScrollBarHorz.ShowScrollBar();
// Example 2:
// Create a vertical CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). m_ScrollBarVert is of type CScrollBar
// class, and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarVert.Create(SBS_VERT | SBS_LEFTALIGN | WS_CHILD |
WS_VISIBLE,
CRect(5, 30, 30, 130), this, IDC_SCROLLBARCTRL));
Bir CScrollBar
nesne oluşturur.
CScrollBar();
Nesnesini oluşturduktan sonra, Windows kaydırma çubuğunu oluşturmak ve başlatmak için üye işlevini çağırın Create
.
CScrollBar m_ScrollBarHorz;
Kaydırma çubuğunun bir veya her iki oklarını etkinleştirir veya devre dışı bırakır.
BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);
nArrowFlags
Kaydırma oklarının etkin mi yoksa devre dışı mı olduğunu ve hangi okların etkinleştirildiğini veya devre dışı bırakılıp bırakılmadığını belirtir. Bu parametre aşağıdaki değerlerden biri olabilir:
ESB_ENABLE_BOTH
Kaydırma çubuğunun her iki oklarını da etkinleştirir.ESB_DISABLE_LTUP
Yatay kaydırma çubuğunun sol okunu veya dikey kaydırma çubuğunun yukarı okunu devre dışı bırakır.ESB_DISABLE_RTDN
Yatay kaydırma çubuğunun sağ okunu veya dikey kaydırma çubuğunun aşağı okunu devre dışı bırakır.ESB_DISABLE_BOTH
Kaydırma çubuğunun her iki oklarını da devre dışı bırakır.
Oklar belirtildiği gibi etkin veya devre dışıysa sıfır olmayan; aksi takdirde 0, okların zaten istenen durumda olduğunu veya bir hata oluştuğuna işaret eder.
örneğine CScrollBar::SetScrollRange
bakın.
Yapının bir kaydırma çubuğu hakkında koruduğu bilgileri SCROLLBARINFO
alır.
BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;
pScrollInfo
Yapı işaretçisi SCROLLBARINFO
.
Başarılı olduğunda, FALSE
başarısız olduğunda döndürürTRUE
.
Bu üye işlevi, Windows SDK'sında açıklandığı gibi iletinin SBM_SCROLLBARINFO
işlevselliğine öykünmektedir.
Yapının bir kaydırma çubuğu hakkında koruduğu bilgileri SCROLLINFO
alır.
BOOL GetScrollInfo(
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
lpScrollInfo
Bir yapıya işaretçi SCROLLINFO
. Bu yapı hakkında daha fazla bilgi için bkz. Windows SDK'sı.
nMask
Alınacak kaydırma çubuğu parametrelerini belirtir. Tipik kullanım, SIF_ALL
, , SIF_POS
SIF_TRACKPOS
ve SIF_RANGE
birleşimini SIF_PAGE
belirtir. Değerler hakkında nMask
daha fazla bilgi için bkzSCROLLINFO
.
İleti herhangi bir değer aldıysa, dönüş olur TRUE
. Aksi takdirde, olur FALSE
.
GetScrollInfo
uygulamaların 32 bit kaydırma konumlarını kullanmasını sağlar.
Yapı, SCROLLINFO
kaydırma çubuğuyla ilgili minimum ve maksimum kaydırma konumları, sayfa boyutu ve kaydırma kutusunun (başparmak) konumu gibi bilgiler içerir. Yapı varsayılanlarını SCROLLINFO
değiştirme hakkında daha fazla bilgi için Windows SDK'sında yapı konusuna bakın.
Kaydırma çubuğu konumunu belirten MFC Windows ileti işleyicileri, CWnd::OnHScroll
ve CWnd::OnVScroll
, yalnızca 16 bit konum verileri sağlar. GetScrollInfo
ve SetScrollInfo
32 bit kaydırma çubuğu konum verileri sağlayın. Bu nedenle, bir uygulama 32 bit kaydırma çubuğu konum verilerini almak için veya CWnd::OnVScroll
işlerken CWnd::OnHScroll
çağırabilirGetScrollInfo
.
örneğine CWnd::OnHScroll
bakın.
Kaydırma çubuğunun en yüksek kaydırma konumunu alır.
int GetScrollLimit();
Başarılı olursa kaydırma çubuğunun en yüksek konumunu belirtir; aksi takdirde 0.
örneğine CWnd::OnHScroll
bakın.
Kaydırma kutusunun geçerli konumunu alır.
int GetScrollPos() const;
Başarılı olursa kaydırma kutusunun geçerli konumunu belirtir; aksi takdirde 0.
Geçerli konum, geçerli kaydırma aralığına bağlı olan göreli bir değerdir. Örneğin, kaydırma aralığı 100 ile 200 arasındaysa ve kaydırma kutusu çubuğun ortasındaysa geçerli konum 150'dir.
örneğine CWnd::OnHScroll
bakın.
Verilen kaydırma çubuğu için geçerli en düşük ve en yüksek kaydırma çubuğu konumlarını ve lpMaxPos
tarafından lpMinPos
belirtilen konumlara kopyalar.
void GetScrollRange(
LPINT lpMinPos,
LPINT lpMaxPos) const;
lpMinPos
En düşük konumu almak için tamsayı değişkenini gösterir.
lpMaxPos
Maksimum konumu almak için tamsayı değişkenini gösterir.
Kaydırma çubuğu denetiminin varsayılan aralığı boş (her iki değer de 0'dır).
örneğine CWnd::OnHScroll
bakın.
Yapının bir kaydırma çubuğu hakkında koruduğu bilgileri SCROLLINFO
ayarlar.
BOOL SetScrollInfo(
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
lpScrollInfo
Bir yapıya işaretçi SCROLLINFO
.
bRedraw
Kaydırma çubuğunun yeni bilgileri yansıtacak şekilde yeniden çizilip çizilmeyeceğini belirtir. ise bRedraw
TRUE
, kaydırma çubuğu yeniden çizilir. FALSE
Ise, yeniden çizlenmemiştir. Kaydırma çubuğu varsayılan olarak yeniden çizilir.
Başarılı olursa, dönüş olur TRUE
. Aksi takdirde, olur FALSE
.
Bayrak değerleri de dahil olmak üzere yapı parametrelerinin SCROLLINFO
gerektirdiği değerleri sağlamanız gerekir.
Yapı, SCROLLINFO
kaydırma çubuğuyla ilgili minimum ve maksimum kaydırma konumları, sayfa boyutu ve kaydırma kutusunun (başparmak) konumu gibi bilgiler içerir. Yapı varsayılanlarını SCROLLINFO
değiştirme hakkında daha fazla bilgi için Windows SDK'sında yapı konusuna bakın.
// Set SCROLLINFO for the scroll bar. m_ScrollBarHorz is of type
// CScrollBar class, and it is a member variable in CMyDialog class.
SCROLLINFO info;
info.cbSize = sizeof(SCROLLINFO);
info.fMask = SIF_ALL;
info.nMin = 0;
info.nMax = 10;
info.nPage = 2;
info.nPos = 5;
info.nTrackPos = 2;
m_ScrollBarHorz.SetScrollInfo(&info);
Kaydırma kutusunun geçerli konumunu tarafından belirtilen nPos
konuma ayarlar ve belirtilirse, kaydırma çubuğunu yeni konumu yansıtacak şekilde yeniden çizer.
int SetScrollPos(
int nPos,
BOOL bRedraw = TRUE);
nPos
Kaydırma kutusu için yeni konumu belirtir. Kaydırma aralığı içinde olmalıdır.
bRedraw
Kaydırma çubuğunun yeni konumu yansıtacak şekilde yeniden çizilip çizilmeyeceğini belirtir. ise bRedraw
TRUE
, kaydırma çubuğu yeniden çizilir. FALSE
Ise, yeniden çizlenmemiştir. Kaydırma çubuğu varsayılan olarak yeniden çizilir.
Başarılı olursa kaydırma kutusunun önceki konumunu belirtir; aksi takdirde 0.
FALSE
Kaydırma çubuğunun kısa bir aralık içinde iki kez yeniden çizilmesinden kaçınmak için, kaydırma çubuğunun başka bir işleve yapılan sonraki bir çağrıyla yeniden çizileceği her zaman olarak ayarlanırbRedraw
.
CScrollBar::SetScrollRange örneğine bakın.
Verilen kaydırma çubuğu için en düşük ve en yüksek konum değerlerini ayarlar.
void SetScrollRange(
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
nMinPos
En düşük kaydırma konumunu belirtir.
nMaxPos
En yüksek kaydırma konumunu belirtir.
bRedraw
Kaydırma çubuğunun değişikliği yansıtacak şekilde yeniden çizilip çizilmeyeceğini belirtir. ise bRedraw
TRUE
kaydırma çubuğu yeniden çizilir; ise FALSE
yeniden çizilir. Varsayılan olarak yeniden çizildi.
Standart kaydırma çubuklarını gizlemek için ve nMaxPos
değerini 0 olarak ayarlayınnMinPos
.
Kaydırma çubuğu bildirim iletisini işlerken kaydırma çubuğunu gizlemek için bu işlevi çağırmayın.
Çağrısı üye işlevine SetScrollRange
yapılan çağrıyı hemen izlerse, kaydırma çubuğunun SetScrollPos
iki kez yeniden çizilmesini önlemek için 0 olarak ayarlayın bRedraw
SetScrollPos
.
ile nMinPos
nMaxPos
belirtilen değerler arasındaki fark 32.767'den büyük olmamalıdır. Kaydırma çubuğu denetiminin varsayılan aralığı boş (her ikisi de nMinPos
nMaxPos
0'dır).
// Sets minimum (0) and maximum (10) position values for the
// CScrollBar control. m_ScrollBarVert is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
m_ScrollBarVert.SetScrollRange(0, 10);
// Set the position of the scroll box.
m_ScrollBarVert.SetScrollPos(5);
// Disable the down arrow of the scroll bar. By default, both arrows
// are enabled.
m_ScrollBarVert.EnableScrollBar(ESB_DISABLE_DOWN);
Kaydırma çubuğunu gösterir veya gizler.
void ShowScrollBar(BOOL bShow = TRUE);
bShow
Kaydırma çubuğunun gösterileceğini veya gizlendiğini belirtir. Bu parametre ise TRUE
kaydırma çubuğu gösterilir; aksi takdirde gizlenir.
Bir uygulama, kaydırma çubuğu bildirim iletisini işlerken kaydırma çubuğunu gizlemek için bu işlevi çağırmamalıdır.
örneğine CScrollBar::Create
bakın.
CWnd
Sınıf
Hiyerarşi Grafiği
CButton
Sınıf
CComboBox
Sınıf
CEdit
Sınıf
CListBox
Sınıf
CStatic
Sınıf
CDialog
Sınıf