CControlBar osztály

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

CObject

CCmdTarget

CWnd

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 CReBar hasonló fogót hoz létre bármely CControlBarszá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