Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
A vezérlősáv CStatusBar, CToolBar, CDialogBar, CReBar és COleResizeBar osztályának alaposztálya.
Szemantika
class CControlBar : public CWnd
Tagok
Védett konstruktorok
| Név | Description |
|---|---|
| CControlBar::CControlBar | Egy CControlBar objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
| CControlBar::CalcDynamicLayout | Egy dinamikus vezérlősáv méretét adja vissza CSize objektumként. |
| CControlBar::CalcFixedLayout | A vezérlősáv méretét adja vissza CSize objektumként. |
| CControlBar::CalcInsideRect | A vezérlősáv területének aktuális dimenzióit adja vissza; a szegélyeket is beleértve. |
| CControlBar::D oPaint | Megjeleníti a vezérlősáv szegélyeit és fogóját. |
| CControlBar::D rawBorders | Megjeleníti a vezérlősáv szegélyeit. |
| CControlBar::D rawGripper | Megjeleníti a vezérlősáv fogóját. |
| CControlBar::EnableDocking | Lehetővé teszi, hogy egy vezérlősáv rögzítve vagy lebegve legyen. |
| CControlBar::GetBarStyle | Lekéri a vezérlősáv stílusbeállításait. |
| CControlBar::GetBorders | Lekéri a vezérlősáv szegélyértékeit. |
| CControlBar::GetCount | A vezérlősáv nem HWND elemeinek számát adja vissza. |
| CControlBar::GetDockingFrame | Egy mutatót ad vissza arra a keretre, amelyhez a vezérlősáv rögzítve van. |
| CControlBar::IsFloating | Nemero értéket ad vissza, ha a kérdéses vezérlősáv egy lebegő vezérlősáv. |
| CControlBar::OnUpdateCmdUI | Meghívja a parancs felhasználói felületének kezelőit. |
| CControlBar::SetBarStyle | Módosítja a vezérlősáv stílusbeállítását. |
| CControlBar::SetBorders | Beállítja a vezérlősáv szegélyértékét. |
| CControlBar::SetInPlaceOwner | Módosítja a vezérlősáv helyszíni tulajdonosát. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
| CControlBar::m_bAutoDelete | Ha nem, akkor az CControlBar objektum törlődik, amikor a Windows vezérlősávja megsemmisül. |
| CControlBar::m_pInPlaceOwner | A vezérlősáv helyszíni tulajdonosa. |
Megjegyzések
A vezérlősáv egy ablak, amely általában a keretablak bal vagy jobb oldalához van igazítva. Tartalmazhat olyan gyermekelemeket, amelyek HWND-alapú vezérlők, amelyek Windows-üzeneteket generáló és válaszoló ablakok, vagy nem HWND-alapú elemek, amelyek nem windowsosak, és amelyeket alkalmazáskód vagy keretrendszerkód kezel. A listamezők és a szerkesztési vezérlők példák A HWND-alapú vezérlőkre; az állapotsáv panelek és a bitképgombok nem HWND-alapú vezérlőkre mutatnak példákat.
A vezérlősáv ablakai általában a szülőkeret ablakának gyermekablakai, és általában a keretablak ügyfélnézetének vagy MDI-ügyfélének testvérei. Az CControlBar objektumok a szülőablak ügyfél téglalapjával kapcsolatos információkat használják fel a helymeghatározáshoz. Ezután tájékoztatja a szülőablakot arról, hogy mennyi hely marad a szülőablak ügyfélterületén.
További információ:CControlBar
Öröklési hierarchia
CControlBar
Requirements
Fejléc: afxext.h
CControlBar::CalcDynamicLayout
A keretrendszer meghívja ezt a tagfüggvényt egy dinamikus eszköztár dimenzióinak kiszámításához.
virtual CSize CalcDynamicLayout(
int nLength,
DWORD nMode);
Paraméterek
nLength
A vezérlősáv kért mérete a dwMode-tól függően vízszintes vagy függőleges.
nMode
A dinamikus vezérlősáv magasságának és szélességének meghatározásához az alábbi előre definiált jelzők szolgálnak. A jelölők kombinálásához használja a bitenkénti VAGY (|) operátort.
| Elrendezési mód jelzői | Mit jelent |
|---|---|
| LM_STRETCH | Azt jelzi, hogy a vezérlősávot a keret méretéhez kell-e nyúlni. Állítsa be, ha a sáv nem dokkolósáv (a rögzítéshez nem érhető el). Nincs beállítva, ha a sáv rögzített vagy lebegő (dokkolható). Ha be van állítva, LM_STRETCH figyelmen kívül hagyja az nLength értéket, és a LM_HORZ állapot alapján adja vissza a dimenziókat. LM_STRETCH a CalcFixedLayoutban használt bStretch paraméterhez hasonlóan működik; a tagfüggvényben további információt talál a nyújtás és a tájolás közötti kapcsolatról. |
| LM_HORZ | Azt jelzi, hogy a sáv vízszintesen vagy függőlegesen orientált. Állítsa be, ha a sáv vízszintesen orientált, és ha függőlegesen orientált, akkor nincs beállítva. LM_HORZ a CalcFixedLayoutban használt bHorz paraméterhez hasonlóan működik; a tagfüggvényben további információt talál a nyújtás és a tájolás közötti kapcsolatról. |
| LM_MRUWIDTH | Legutóbb használt dinamikus szélesség. Figyelmen kívül hagyja az nLength paramétert , és a legutóbb használt szélességet használja. |
| LM_HORZDOCK | Vízszintes rögzített dimenziók. Figyelmen kívül hagyja az nLength paramétert , és a legnagyobb szélességű dinamikus méretet adja vissza. |
| LM_VERTDOCK | Függőleges rögzített méretek. Figyelmen kívül hagyja az nLength paramétert , és a legnagyobb magasságú dinamikus méretet adja vissza. |
| LM_LENGTHY | Adja meg, hogy az nLength szélesség helyett magasságot (Y-irányt) jelez-e. |
| LM_COMMIT | Alaphelyzetbe állítja LM_MRUWIDTH a lebegő vezérlősáv aktuális szélességére. |
Visszaadott érték
Egy CSize objektum vezérlősávjának mérete képpontban.
Megjegyzések
Bírálja felül ezt a tagfüggvényt, hogy saját dinamikus elrendezést biztosítson a származtatott CControlBarosztályokban. A (például CToolbar) származó CControlBarMFC-osztályok felülbírálják ezt a tagfüggvényt, és saját megvalósítást biztosítanak.
CControlBar::CalcFixedLayout
A vezérlősáv vízszintes méretének kiszámításához hívja meg ezt a tagfüggvényt.
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
Paraméterek
bStretch
Azt jelzi, hogy a sávot a keret méretéhez kell-e nyúlni. A bStretch paraméter nem rúd, ha a sáv nem dokkolósáv (dokkoláshoz nem érhető el), és 0, ha dokkolt vagy lebegő (dokkolható).
bHorz
Azt jelzi, hogy a sáv vízszintesen vagy függőlegesen orientált. A bHorz paraméter nem nulla, ha a sáv vízszintesen orientált, és függőlegesen 0.
Visszaadott érték
Egy objektum vezérlősávjának CSize mérete képpontban.
Megjegyzések
A vezérlősávok, például az eszköztárak vízszintesen vagy függőlegesen is megnyúlhatnak a vezérlősávban található gombok elhelyezéséhez.
Ha a bStretch értéke IGAZ, a bHorz által biztosított tájolás mentén feszítse ki a dimenziót. Más szóval, ha a bHorz HAMIS, a vezérlősáv függőlegesen van feszítve. Ha a bStretch ÉRTÉKE HAMIS, nem történik megnyújtás. Az alábbi táblázat a bStretch és a bHorz lehetséges permutációit és az ebből eredő vezérlősávstílusokat mutatja be.
| bStretch | bHorz | Nyújtás | Tájékozódás | Dokkolás/Nem dokkolás |
|---|---|---|---|---|
| TRUE | TRUE | Vízszintes nyújtás | Vízszintesen orientált | Nincs dokkolás |
| TRUE | FALSE | Függőleges nyújtás | Függőlegesen orientált | Nincs dokkolás |
| FALSE | TRUE | Nincs elérhető nyújtás | Vízszintesen orientált | Dokkolás |
| FALSE | FALSE | Nincs elérhető nyújtás | Függőlegesen orientált | Dokkolás |
CControlBar::CalcInsideRect
A keretrendszer meghívja ezt a függvényt a vezérlősáv ügyfélterületének kiszámításához.
virtual void CalcInsideRect(
CRect& rect,
BOOL bHorz) const;
Paraméterek
téglalap
A vezérlősáv aktuális méreteit tartalmazza; a szegélyeket is beleértve.
bHorz
Azt jelzi, hogy a sáv vízszintesen vagy függőlegesen orientált. A bHorz paraméter nem nulla, ha a sáv vízszintesen orientált, és függőlegesen 0.
Megjegyzések
Ezt a függvényt a vezérlősáv festése előtt hívja meg a rendszer.
Felülbírálja ezt a függvényt a vezérlősáv szegélyeinek és fogósávjának testreszabásához.
CControlBar::CControlBar
Egy CControlBar objektumot hoz létre.
CControlBar();
CControlBar::D oPaint
A keretrendszer meghívta a vezérlősáv szegélyeinek és fogósávjának megjelenítéséhez.
virtual void DoPaint(CDC* pDC);
Paraméterek
Pdc
A vezérlősáv szegélyeinek és fogópontjának megjelenítéséhez használandó eszközkörnyezetre mutat.
Megjegyzések
Felülbírálja ezt a függvényt a vezérlősáv rajzi viselkedésének testreszabásához.
Egy másik testreszabási módszer a szegélyekhez és a DrawBorders fogóhoz tartozó egyéni rajzkód felülbírálása és DrawGripper a függvények felülbírálása. Mivel ezeket a metódusokat az alapértelmezett DoPaint metódus hívja meg, nincs szükség felülbírálásra DoPaint .
CControlBar::D rawBorders
A keretrendszer meghívta a vezérlősáv szegélyeinek megjelenítéséhez.
virtual void DrawBorders(
CDC* pDC,
CRect& rect);
Paraméterek
Pdc
A vezérlősáv szegélyeinek megjelenítéséhez használandó eszközkörnyezetre mutat.
téglalap
A CRect vezérlősáv dimenzióit tartalmazó objektum.
Megjegyzések
A vezérlősávszegélyek megjelenésének testreszabásához felülbírálja ezt a függvényt.
CControlBar::D rawGripper
A keretrendszer meghívta a vezérlősáv fogóját.
virtual void DrawGripper(
CDC* pDC,
const CRect& rect);
Paraméterek
Pdc
A vezérlősáv fogójának megjelenítéséhez használandó eszközkörnyezetre mutat.
téglalap
A CRect vezérlősáv fogójának méreteit tartalmazó objektum.
Megjegyzések
Felülbírálja ezt a függvényt a vezérlősáv fogójának megjelenésének testreszabásához.
CControlBar::EnableDocking
Hívja meg ezt a függvényt egy vezérlősáv rögzítésének engedélyezéséhez.
void EnableDocking(DWORD dwDockStyle);
Paraméterek
dwDockStyle
Megadja, hogy a vezérlősáv támogatja-e a dokkolást, illetve a szülőablak azon oldalait, amelyekhez a vezérlősáv rögzíthető, ha támogatott. Az alábbiak közül egy vagy több lehet:
CBRS_ALIGN_TOP Lehetővé teszi a dokkolást az ügyfélterület tetején.
CBRS_ALIGN_BOTTOM Engedélyezi a dokkolást az ügyfélterület alján.
CBRS_ALIGN_LEFT Engedélyezi a dokkolást az ügyfélterület bal oldalán.
CBRS_ALIGN_RIGHT Engedélyezi a dokkolást az ügyfélterület jobb oldalán.
CBRS_ALIGN_ANY Lehetővé teszi a dokkolást az ügyfélterület bármely oldalán.
CBRS_FLOAT_MULTI Lehetővé teszi, hogy egyetlen minikeretablakban több vezérlősáv is lebegjen.
Ha 0 (azaz nem jelez jelzőket), a vezérlősáv nem lesz rögzítve.
Megjegyzések
A megadott oldalaknak meg kell egyeznie a célkeretablakban a rögzítéshez engedélyezett egyik oldallal, vagy a vezérlősáv nem rögzíthető az adott keretablakhoz.
CControlBar::GetBarStyle
Hívja meg ezt a függvényt annak meghatározásához, hogy a vezérlősáv mely CBRS_ (vezérlősávstílusok) vannak beállítva.
DWORD GetBarStyle();
Visszaadott érték
A vezérlősáv aktuális CBRS_ (vezérlősávstílusok) beállításai. Az elérhető stílusok teljes listáját lásd : CControlBar::SetBarStyle .
Megjegyzések
Nem kezeli WS_ (ablakstílus) stílusokat.
CControlBar::GetBorders
A vezérlősáv aktuális szegélyértékeit adja vissza.
CRect GetBorders() const;
Visszaadott érték
Olyan CRect objektum, amely a vezérlősáv-objektum minden oldalának aktuális szélességét (képpontban) tartalmazza. A CRect objektum bal oldali tagjának értéke például a bal oldali szegély szélessége.
CControlBar::GetCount
Az objektum nem HWND elemeinek CControlBar számát adja vissza.
int GetCount() const;
Visszaadott érték
Az objektum nem HWND elemeinek CControlBar száma. Ez a függvény egy CDialogBar objektum esetében 0 értéket ad vissza.
Megjegyzések
Az elem típusa a származtatott objektumtól függ: a CStatusBar objektumok paneljeitől, a CToolBar-objektumok gombjaitól és elválasztóitól.
CControlBar::GetDockingFrame
Hívja meg ezt a tagfüggvényt, és szerezze be azt az aktuális keretablakot, amelyhez a vezérlősáv rögzítve van.
CFrameWnd* GetDockingFrame() const;
Visszaadott érték
Mutató egy keretablakra, ha sikeres; ellenkező esetben NULL.
Ha a vezérlősáv nincs keretablakhoz rögzítve (vagyis ha a vezérlősáv lebegő), ez a függvény egy mutatót ad vissza a szülő CMiniFrameWnd eleméhez.
Megjegyzések
A dokkolható vezérlősávokkal kapcsolatos további információkért lásd: CControlBar::EnableDocking és CFrameWnd::D ockControlBar.
CControlBar::IsFloating
Hívja meg ezt a tagfüggvényt annak megállapításához, hogy a vezérlősáv lebegő vagy rögzített-e.
BOOL IsFloating() const;
Visszaadott érték
Nonzero, ha a vezérlősáv lebegő; egyéb esetben 0.
Megjegyzések
Ha egy vezérlősáv állapotát rögzítettről lebegőre szeretné módosítani, hívja meg a CFrameWnd::FloatControlBar parancsot.
CControlBar::m_bAutoDelete
Ha nem, akkor az CControlBar objektum törlődik, amikor a Windows vezérlősávja megsemmisül.
BOOL m_bAutoDelete;
Megjegyzések
m_bAutoDelete nyilvános bool típusú változó.
A vezérlősáv objektumai általában egy keretablakos objektumba ágyazódnak be. Ebben az esetben a m_bAutoDelete 0, mert a beágyazott vezérlősáv objektum a keretablak megsemmisülésekor megsemmisül.
Állítsa ezt a változót nemzero értékre, ha egy objektumot CControlBar foglal le a halomra, és nem tervezi meghívni delete.
CControlBar::m_pInPlaceOwner
A vezérlősáv helyszíni tulajdonosa.
CWnd* m_pInPlaceOwner;
CControlBar::OnUpdateCmdUI
Ezt a tagfüggvényt a keretrendszer hívja meg az eszköztár vagy az állapotsor állapotának frissítéséhez.
virtual void OnUpdateCmdUI(
CFrameWnd* pTarget,
BOOL bDisableIfNoHndler) = 0;
Paraméterek
pTarget
Az alkalmazás fő keretablakára mutat. Ez a mutató az útválasztási frissítési üzenetekhez használatos.
bDisableIfNoHndler
Jelző, amely jelzi, hogy a frissítéskezelővel nem rendelkező vezérlők automatikusan letiltottként jelenjenek-e meg.
Megjegyzések
Az egyes gombok vagy panelek frissítéséhez használja az üzenettérkép ON_UPDATE_COMMAND_UI makróját a frissítéskezelő megfelelő beállításához. A makró használatáról további információt a ON_UPDATE_COMMAND_UI talál.
OnUpdateCmdUI a keretrendszer meghívja, amikor az alkalmazás tétlen. A frissíteni kívánt keretablaknak legalább közvetetten egy látható keretablak gyermekablakának kell lennie.
OnUpdateCmdUI egy speciális felülírható.
CControlBar::SetBarStyle
Hívja meg ezt a függvényt a vezérlősáv kívánt CBRS_ stílusának beállításához.
void SetBarStyle(DWORD dwStyle);
Paraméterek
dwStyle
A vezérlősáv kívánt stílusai. Az alábbiak közül egy vagy több lehet:
CBRS_ALIGN_TOP Lehetővé teszi a vezérlősáv rögzítését a keretablak ügyfélterületének tetejére.
CBRS_ALIGN_BOTTOM Lehetővé teszi a vezérlősáv rögzítését a keretablak ügyfélterületének aljára.
CBRS_ALIGN_LEFT Lehetővé teszi a vezérlősáv rögzítését a keretablak ügyfélterületének bal oldalán.
CBRS_ALIGN_RIGHT Lehetővé teszi a vezérlősáv rögzítését a keretablak ügyfélterületének jobb oldalán.
CBRS_ALIGN_ANY Lehetővé teszi a vezérlősáv rögzítését a keretablak ügyfélterületének bármely oldalára.
CBRS_BORDER_TOP A vezérlősáv felső szélére szegélyt rajzol, amikor az látható lesz.
CBRS_BORDER_BOTTOM Szegély rajzolása a vezérlősáv alsó szélére, amikor az látható lesz.
CBRS_BORDER_LEFT A vezérlősáv bal széle szegélyt rajzol, amikor az látható lesz.
CBRS_BORDER_RIGHT A vezérlősáv jobb szélére húz egy szegélyt, amikor az látható lesz.
CBRS_FLOAT_MULTI Lehetővé teszi, hogy egyetlen minikeretablakban több vezérlősáv is lebegjen.
CBRS_TOOLTIPS Eszköztippek megjelenítése a vezérlősávon.
CBRS_FLYBY Az üzenet szövegének frissítése az eszköztippekkel egy időben történik.
CBRS_GRIPPER Egy objektum sávjaihoz
CReBarhasonló fogót hoz létre bármelyCControlBarszármaztatott osztályhoz.
Megjegyzések
Nincs hatással a WS_ (ablakstílus) beállításaira.
CControlBar::SetBorders
Hívja meg ezt a függvényt a vezérlősáv szegélyeinek méretének beállításához.
void SetBorders(
int cxLeft = 0,
int cyTop = 0,
int cxRight = 0,
int cyBottom = 0);
void SetBorders(LPCRECT lpRect);
Paraméterek
cxLeft
A vezérlősáv bal szegélyének szélessége (képpontban kifejezve).
cyTop
A vezérlősáv felső szegélyének magassága (képpontban).
cxRight
A vezérlősáv jobb szegélyének szélessége (képpontban kifejezve).
cyBottom
A vezérlősáv alsó szegélyének magassága (képpontban).
lpRect
Mutató egy CRect objektumra, amely a vezérlősáv-objektum egyes szegélyeinek aktuális szélességét (képpontban) tartalmazza.
Example
Az alábbi példakód a vezérlősáv felső és alsó szegélyét 5 képpontra, a bal és jobb oldali szegélyeket pedig 2 képpontra állítja:
CControlBar &m_myControlBar = m_Rebar;
m_myControlBar.SetBorders(2, 5, 2, 5);
CControlBar::SetInPlaceOwner
Módosítja a vezérlősáv helyszíni tulajdonosát.
void SetInPlaceOwner(CWnd* pWnd);
Paraméterek
pWnd
Egy objektumra mutató CWnd mutató.
Megjegyzések
Lásd még
MFC-minta CTRLBARS
CWnd osztály
hierarchiadiagram
CToolBar osztály
CDialogBar osztály
CStatusBar osztály
CReBar osztály