Rebar Denetimleri ve Bantları
Bir rebar denetiminin temel amacı alt pencereler, ortak iletişim kutusu denetimleri, menüler, araç çubukları vb. için kapsayıcı görevi görmektir. Bu kapsama bir "bant" kavramı tarafından desteklenir. Her bir rebar bandı kavrama çubuğu, bit eşlem, metin etiketi ve alt pencerenin herhangi bir bileşimini içerebilir.
Sınıfın CReBarCtrl
, belirli bir rebar bandına ilişkin bilgileri almak ve işlemek için kullanabileceğiniz birçok üye işlevi vardır:
GetBandCount Rebar denetimindeki geçerli bant sayısını alır.
GetBandInfo , belirtilen banttan alınan bilgilerle bir REBARBANDINFO yapısı başlatır. Karşılık gelen bir SetBandInfo üye işlevi vardır.
GetRect Belirtilen bandın sınırlayıcı dikdörtgenini alır.
GetRowCount Bir rebar denetimindeki bant satırlarının sayısını alır.
IDToIndex Belirtilen bir bandın dizinini alır.
GetBandBorders Bir bandın kenarlıklarını alır.
Düzenlemeye ek olarak, belirli rebar bantlarında çalışmanıza olanak sağlayan çeşitli üye işlevleri sağlanır.
InsertBand ve DeleteBand , rebar bantlarını ekler ve kaldırır. MinimizeBand ve MaximizeBand , belirli bir rebar bandının geçerli boyutunu etkiler. MoveBand , belirli bir rebar bandının dizinini değiştirir. ShowBand , kullanıcının bir rebar bandını gösterir veya gizler.
Aşağıdaki örnek, mevcut bir rebar denetimine (m_wndReBar) araç çubuğu bandı (m_wndToolBar) eklemeyi gösterir. Bant, yapı başlatılıp rbi
üye işlevi çağrılarak InsertBand
açıklanır:
//load bitmap for toolbar background
m_RebarBitmap.LoadBitmap(IDB_BITMAP1);
//create a toolbar band
m_Toolbar1.Create(this, TBSTYLE_TRANSPARENT | TBSTYLE_FLAT);
m_Toolbar1.LoadToolBar(IDR_MAINFRAME);
REBARBANDINFO rbi = { 0 };
rbi.cbSize = sizeof(REBARBANDINFO);
rbi.fMask = RBBIM_BACKGROUND | RBBIM_CHILD | RBBIM_CHILDSIZE |
RBBIM_STYLE | RBBIM_TEXT;
rbi.fStyle = RBBS_GRIPPERALWAYS;
rbi.cxMinChild = 300;
rbi.cyMinChild = 50;
rbi.lpText = _T("Band #1");
rbi.cch = 7;
rbi.cx = 300;
rbi.hbmBack = (HBITMAP)m_RebarBitmap;
rbi.hwndChild = (HWND)m_Toolbar1;
m_Rebar.GetReBarCtrl().InsertBand(0, &rbi);