Aracılığıyla paylaş


CScrollBar Sınıf

Windows kaydırma çubuğu denetiminin işlevselliğini sağlar.

Sözdizimi

class CScrollBar : public CWnd

Üyeler

Ortak Oluşturucular

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

Genel Yöntemler

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.

Açıklamalar

İ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 CScrollBarhakkında daha fazla bilgi için bkz . Denetimler.

Devralma Hiyerarşisi

CObject

CCmdTarget

CWnd

CScrollBar

Gereksinimler

Üstbilgi: afxwin.h

CScrollBar::Create

Windows kaydırma çubuğunu oluşturur ve nesneye CScrollBar ekler.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametreler

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.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

İ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ınCreateCScrollBar.

Kaydırma çubuğuna aşağıdaki pencere stillerini uygulayın:

  • WS_CHILD Her zaman

  • WS_VISIBLE Genelde

  • WS_DISABLED Nadiren

  • WS_GROUP Denetimleri gruplandırmak için

Örnek

// 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));

CScrollBar::CScrollBar

Bir CScrollBar nesne oluşturur.

CScrollBar();

Açıklamalar

Nesnesini oluşturduktan sonra, Windows kaydırma çubuğunu oluşturmak ve başlatmak için üye işlevini çağırın Create .

Örnek

CScrollBar m_ScrollBarHorz;

CScrollBar::EnableScrollBar

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);

Parametreler

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.

Dönüş Değeri

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.

Örnek

örneğine CScrollBar::SetScrollRangebakın.

CScrollBar::GetScrollBarInfo

Yapının bir kaydırma çubuğu hakkında koruduğu bilgileri SCROLLBARINFO alır.

BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;

Parametreler

pScrollInfo
Yapı işaretçisi SCROLLBARINFO .

Dönüş Değeri

Başarılı olduğunda, FALSE başarısız olduğunda döndürürTRUE.

Açıklamalar

Bu üye işlevi, Windows SDK'sında açıklandığı gibi iletinin SBM_SCROLLBARINFO işlevselliğine öykünmektedir.

CScrollBar::GetScrollInfo

Yapının bir kaydırma çubuğu hakkında koruduğu bilgileri SCROLLINFO alır.

BOOL GetScrollInfo(
    LPSCROLLINFO lpScrollInfo,
    UINT nMask = SIF_ALL);

Parametreler

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_POSSIF_TRACKPOSve SIF_RANGEbirleşimini SIF_PAGEbelirtir. Değerler hakkında nMask daha fazla bilgi için bkzSCROLLINFO.

Dönüş Değeri

İleti herhangi bir değer aldıysa, dönüş olur TRUE. Aksi takdirde, olur FALSE.

Açıklamalar

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::OnHScrollve 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.

Örnek

örneğine CWnd::OnHScrollbakın.

CScrollBar::GetScrollLimit

Kaydırma çubuğunun en yüksek kaydırma konumunu alır.

int GetScrollLimit();

Dönüş Değeri

Başarılı olursa kaydırma çubuğunun en yüksek konumunu belirtir; aksi takdirde 0.

Örnek

örneğine CWnd::OnHScrollbakın.

CScrollBar::GetScrollPos

Kaydırma kutusunun geçerli konumunu alır.

int GetScrollPos() const;

Dönüş Değeri

Başarılı olursa kaydırma kutusunun geçerli konumunu belirtir; aksi takdirde 0.

Açıklamalar

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.

Örnek

örneğine CWnd::OnHScrollbakın.

CScrollBar::GetScrollRange

Verilen kaydırma çubuğu için geçerli en düşük ve en yüksek kaydırma çubuğu konumlarını ve lpMaxPostarafından lpMinPos belirtilen konumlara kopyalar.

void GetScrollRange(
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Parametreler

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.

Açıklamalar

Kaydırma çubuğu denetiminin varsayılan aralığı boş (her iki değer de 0'dır).

Örnek

örneğine CWnd::OnHScrollbakın.

CScrollBar::SetScrollInfo

Yapının bir kaydırma çubuğu hakkında koruduğu bilgileri SCROLLINFO ayarlar.

BOOL SetScrollInfo(
    LPSCROLLINFO lpScrollInfo,
    BOOL bRedraw = TRUE);

Parametreler

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. FALSEIse, yeniden çizlenmemiştir. Kaydırma çubuğu varsayılan olarak yeniden çizilir.

Dönüş Değeri

Başarılı olursa, dönüş olur TRUE. Aksi takdirde, olur FALSE.

Açıklamalar

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.

Örnek

// 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);

CScrollBar::SetScrollPos

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);

Parametreler

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. FALSEIse, yeniden çizlenmemiştir. Kaydırma çubuğu varsayılan olarak yeniden çizilir.

Dönüş Değeri

Başarılı olursa kaydırma kutusunun önceki konumunu belirtir; aksi takdirde 0.

Açıklamalar

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.

Örnek

CScrollBar::SetScrollRange örneğine bakın.

CScrollBar::SetScrollRange

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);

Parametreler

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 TRUEkaydırma çubuğu yeniden çizilir; ise FALSEyeniden çizilir. Varsayılan olarak yeniden çizildi.

Açıklamalar

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).

Örnek

// 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);

CScrollBar::ShowScrollBar

Kaydırma çubuğunu gösterir veya gizler.

void ShowScrollBar(BOOL bShow = TRUE);

Parametreler

bShow
Kaydırma çubuğunun gösterileceğini veya gizlendiğini belirtir. Bu parametre ise TRUEkaydırma çubuğu gösterilir; aksi takdirde gizlenir.

Açıklamalar

Bir uygulama, kaydırma çubuğu bildirim iletisini işlerken kaydırma çubuğunu gizlemek için bu işlevi çağırmamalıdır.

Örnek

örneğine CScrollBar::Createbakın.

Ayrıca bkz.

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