Share via


CControlBar-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

De basisklasse voor de klassen CStatusBar, CToolBar, CDialogBar, CReBar en COleResizeBar.

Syntaxis

class CControlBar : public CWnd

Leden

Beveiligde constructors

Naam Description
CControlBar::CControlBar Maakt een CControlBar object.

Openbare methoden

Naam Description
CControlBar::CalcDynamicLayout Retourneert de grootte van een dynamische besturingsbalk als een CSize-object .
CControlBar::CalcFixedLayout Retourneert de grootte van de besturingsbalk als een CSize-object .
CControlBar::CalcInsideRect Retourneert de huidige afmetingen van het besturingsbalkgebied; inclusief de randen.
CControlBar::D oPaint Geeft de randen en greep van de besturingsbalk weer.
CControlBar::D rawBorders Geeft de randen van de besturingsbalk weer.
CControlBar::D rawGripper Geeft de greep van de besturingsbalk weer.
CControlBar::EnableDocking Hiermee kan een besturingsbalk worden gedokt of zwevend.
CControlBar::GetBarStyle Hiermee worden de instellingen voor de stijl van de besturingsbalk opgehaald.
CControlBar::GetBorders Hiermee worden de randwaarden van de besturingsbalk opgehaald.
CControlBar::GetCount Retourneert het aantal niet-HWND-elementen in de besturingsbalk.
CControlBar::GetDockingFrame Hiermee wordt een aanwijzer geretourneerd naar het frame waaraan een besturingsbalk is gekoppeld.
CControlBar::IsFloating Retourneert een niet-nulwaarde als de betreffende besturingsbalk een zwevende besturingsbalk is.
CControlBar::OnUpdateCmdUI Roept de handlers van de opdrachtgebruikersinterface aan.
CControlBar::SetBarStyle Hiermee wijzigt u de instellingen voor de stijl van de besturingsbalk.
CControlBar::SetBorders Hiermee stelt u de randwaarden van de besturingsbalk in.
CControlBar::SetInPlaceOwner Hiermee wijzigt u de in-place eigenaar van een besturingsbalk.

Leden van openbare gegevens

Naam Description
CControlBar::m_bAutoDelete Als het object niet-nul is, wordt het CControlBar object verwijderd wanneer de Windows-besturingsbalk wordt vernietigd.
CControlBar::m_pInPlaceOwner De in-place eigenaar van de besturingsbalk.

Opmerkingen

Een besturingsbalk is een venster dat meestal links of rechts van een framevenster wordt uitgelijnd. Het kan onderliggende items bevatten die op HWND gebaseerde besturingselementen zijn. Dit zijn vensters die Windows-berichten genereren en erop reageren, of niet-HWND-items, die geen vensters zijn en worden beheerd door toepassingscode of frameworkcode. Keuzelijsten en besturingselementen voor bewerken zijn voorbeelden van op HWND gebaseerde besturingselementen; deelvensters met statusbalken en bitmapknoppen zijn voorbeelden van niet-HWND-besturingselementen.

Besturingsbalkvensters zijn meestal onderliggende vensters van een bovenliggend framevenster en zijn meestal broers en zussen voor de clientweergave of de MDI-client van het framevenster. Een CControlBar object gebruikt informatie over de clientrechthoek van het bovenliggende venster om zichzelf te positioneren. Vervolgens wordt het bovenliggende venster geïnformeerd over de hoeveelheid ruimte die niet is toegewezen in het clientgebied van het bovenliggende venster.

Zie voor meer informatie over CControlBar:

Overnamehiërarchie

CObject

CCmdTarget

CWnd

CControlBar

Requirements

Koptekst: afxext.h

CControlBar::CalcDynamicLayout

In het framework wordt deze lidfunctie aangeroepen om de dimensies van een dynamische werkbalk te berekenen.

virtual CSize CalcDynamicLayout(
    int nLength,
    DWORD nMode);

Parameterwaarden

nLength-
De aangevraagde dimensie van de besturingsbalk, horizontaal of verticaal, afhankelijk van dwMode.

nMode
De volgende vooraf gedefinieerde vlaggen worden gebruikt om de hoogte en breedte van de dynamische besturingsbalk te bepalen. Gebruik de operator bitwise-OR (|) om de vlaggen te combineren.

Markeringen voor indelingsmodus Wat het betekent
LM_STRETCH Geeft aan of de besturingsbalk moet worden uitgerekt tot de grootte van het frame. Instellen als de bar geen dockingbalk is (niet beschikbaar voor docking). Niet ingesteld wanneer de balk is gedokt of zwevend (beschikbaar voor docking). Indien ingesteld, negeert LM_STRETCH nLength en retourneert dimensies op basis van de status LM_HORZ. LM_STRETCH werkt op dezelfde manier als de bStretch-parameter die wordt gebruikt in CalcFixedLayout; zie die lidfunctie voor meer informatie over de relatie tussen uitrekken en richting.
LM_HORZ Geeft aan dat de balk horizontaal of verticaal is georiënteerd. Instellen als de balk horizontaal is gericht en als deze verticaal is georiënteerd, is deze niet ingesteld. LM_HORZ werkt vergelijkbaar met de bHorz-parameter die wordt gebruikt in CalcFixedLayout; zie die lidfunctie voor meer informatie over de relatie tussen uitrekken en richting.
LM_MRUWIDTH Meest recent gebruikte dynamische breedte. Negeert de nLength-parameter en gebruikt de onthouden meest recent gebruikte breedte.
LM_HORZDOCK Horizontale gedokte afmetingen. Negeert de nLength-parameter en retourneert de dynamische grootte met de grootste breedte.
LM_VERTDOCK Verticale gedokte afmetingen. Negeert de parameter nLength en retourneert de dynamische grootte met de grootste hoogte.
LM_LENGTHY Stel in als nLength hoogte (Y-richting) aangeeft in plaats van breedte.
LM_COMMIT Hiermee stelt u LM_MRUWIDTH in op de huidige breedte van de zwevende besturingsbalk.

Retourwaarde

De grootte van de besturingsbalk, in pixels, van een CSize-object .

Opmerkingen

Overschrijf deze lidfunctie om uw eigen dynamische indeling te bieden in klassen die u hebt afgeleid van CControlBar. MFC-klassen die zijn afgeleid van CControlBar, zoals CToolbar, overschrijven deze lidfunctie en bieden hun eigen implementatie.

CControlBar::CalcFixedLayout

Roep deze lidfunctie aan om de horizontale grootte van een besturingsbalk te berekenen.

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Parameterwaarden

bStretch
Geeft aan of de balk moet worden uitgerekt tot de grootte van het frame. De parameter bStretch is niet-nul wanneer de balk geen dockingbalk is (niet beschikbaar voor docking) en 0 is wanneer deze is gedokt of zwevend (beschikbaar voor docking).

bHorz
Geeft aan dat de balk horizontaal of verticaal is georiënteerd. De parameter bHorz is niet-nul als de balk horizontaal is gericht en 0 is als deze verticaal is gericht.

Retourwaarde

De grootte van de besturingsbalk, in pixels, van een CSize object.

Opmerkingen

Besturingsbalken zoals werkbalken kunnen horizontaal of verticaal worden uitgerekt om de knoppen in de besturingsbalk weer te geven.

Als bStretch TRUE is, rekt u de dimensie uit langs de richting van bHorz. Met andere woorden, als bHorz ONWAAR is, wordt de besturingsbalk verticaal uitgerekt. Als bStretch ONWAAR is, treedt er geen stretch op. In de volgende tabel ziet u de mogelijke permutaties en resulterende stijlen voor besturingsbalken, van bStretch en bHorz.

bStretch bHorz Stretching Oriëntatie Dokken/niet dokken
TRUE TRUE Horizontaal uitrekken Horizontaal georiënteerd Niet dokken
TRUE ONWAAR Verticaal uitrekken Verticaal georiënteerd Niet dokken
ONWAAR TRUE Geen stretching beschikbaar Horizontaal georiënteerd Aankoppelen
ONWAAR ONWAAR Geen stretching beschikbaar Verticaal georiënteerd Aankoppelen

CControlBar::CalcInsideRect

Dit framework roept deze functie aan om het clientgebied van de besturingsbalk te berekenen.

virtual void CalcInsideRect(
    CRect& rect,
    BOOL bHorz) const;

Parameterwaarden

Rect
Bevat de huidige afmetingen van de besturingsbalk; inclusief de randen.

bHorz
Geeft aan dat de balk horizontaal of verticaal is georiënteerd. De parameter bHorz is niet-nul als de balk horizontaal is gericht en 0 is als deze verticaal is gericht.

Opmerkingen

Deze functie wordt aangeroepen voordat de besturingsbalk wordt geschilderd.

Overschrijf deze functie om de weergave van de randen en greepbalk van de besturingsbalk aan te passen.

CControlBar::CControlBar

Maakt een CControlBar object.

CControlBar();

CControlBar::D oPaint

Door het framework aangeroepen om de randen en grijpbalk van de besturingsbalk weer te geven.

virtual void DoPaint(CDC* pDC);

Parameterwaarden

Pdc
Verwijst naar de apparaatcontext die moet worden gebruikt om de randen en greep van de besturingsbalk weer te geven.

Opmerkingen

Overschrijf deze functie om het tekengedrag van de besturingsbalk aan te passen.

Een andere aanpassingsmethode is het overschrijven van de DrawBorders en DrawGripper functies en het toevoegen van aangepaste tekencode voor de randen en gripper. Omdat deze methoden worden aangeroepen met de standaardmethode DoPaint , is er geen onderdrukking DoPaint nodig.

CControlBar::D rawBorders

Aangeroepen door het framework om de randen van de besturingsbalk weer te geven.

virtual void DrawBorders(
    CDC* pDC,
    CRect& rect);

Parameterwaarden

Pdc
Verwijst naar de apparaatcontext die moet worden gebruikt voor het weergeven van de randen van de besturingsbalk.

Rect
Een CRect object met de afmetingen van de besturingsbalk.

Opmerkingen

Overschrijf deze functie om het uiterlijk van de randen van de besturingsbalk aan te passen.

CControlBar::D rawGripper

Aangeroepen door het framework om de gripper van de besturingsbalk weer te geven.

virtual void DrawGripper(
    CDC* pDC,
    const CRect& rect);

Parameterwaarden

Pdc
Verwijst naar de apparaatcontext die moet worden gebruikt voor het weergeven van de besturingsbalkgreep.

Rect
Een CRect object met de afmetingen van de besturingsbalkgreep.

Opmerkingen

Overschrijf deze functie om het uiterlijk van de besturingsbalkgreep aan te passen.

CControlBar::EnableDocking

Roep deze functie aan om in te schakelen dat een besturingsbalk kan worden vastgezet.

void EnableDocking(DWORD dwDockStyle);

Parameterwaarden

dwDockStyle
Hiermee geeft u op of de besturingsbalk docking en de zijkanten van het bovenliggende venster ondersteunt waarop de besturingsbalk kan worden vastgezet, indien ondersteund. Dit kan een of meer van de volgende zijn:

  • CBRS_ALIGN_TOP Staat dokken toe boven aan het clientgebied.

  • CBRS_ALIGN_BOTTOM Staat dokken aan de onderkant van het clientgebied toe.

  • CBRS_ALIGN_LEFT Staat dokken aan de linkerkant van het clientgebied toe.

  • CBRS_ALIGN_RIGHT Staat dokken aan de rechterkant van het clientgebied toe.

  • CBRS_ALIGN_ANY Staat dokken aan elke kant van het clientgebied toe.

  • CBRS_FLOAT_MULTI Kunt u meerdere besturingsbalken laten zweven in één miniframevenster.

Als 0 (dat wil zeggen dat er geen vlaggen worden aangegeven), wordt de besturingsbalk niet gedokt.

Opmerkingen

De opgegeven zijden moeten overeenkomen met een van de zijden die zijn ingeschakeld voor docking in het doelframevenster, of de besturingsbalk kan niet worden gedokt in dat framevenster.

CControlBar::GetBarStyle

Roep deze functie aan om te bepalen welke instellingen voor CBRS_ (stijlen voor besturingsbalken) momenteel zijn ingesteld voor de besturingsbalk.

DWORD GetBarStyle();

Retourwaarde

De instellingen voor de huidige CBRS_ (stijlen voor besturingsbalken) voor de besturingsbalk. Zie CControlBar::SetBarStyle voor de volledige lijst met beschikbare stijlen.

Opmerkingen

Hiermee worden WS_ stijlen (vensterstijl) niet verwerkt.

CControlBar::GetBorders

Retourneert de huidige randwaarden voor de besturingsbalk.

CRect GetBorders() const;

Retourwaarde

Een CRect object dat de huidige breedte (in pixels) van elke zijde van het besturingsbalkobject bevat. De waarde van het linkerlid , van het CRect-object , is bijvoorbeeld de breedte van de linkerrand.

CControlBar::GetCount

Retourneert het aantal niet-HWND-items in het CControlBar object.

int GetCount() const;

Retourwaarde

Het aantal niet-HWND-items op het CControlBar object. Deze functie retourneert 0 voor een CDialogBar-object .

Opmerkingen

Het type item is afhankelijk van het afgeleide object: deelvensters voor CStatusBar-objecten en knoppen en scheidingstekens voor CToolBar-objecten .

CControlBar::GetDockingFrame

Roep deze lidfunctie aan om een aanwijzer te verkrijgen naar het huidige framevenster waarop de besturingsbalk is gedokt.

CFrameWnd* GetDockingFrame() const;

Retourwaarde

Een aanwijzer naar een framevenster indien geslaagd; anders NULL.

Als de besturingsbalk niet is gekoppeld aan een framevenster (als de besturingsbalk zwevend is), retourneert deze functie een aanwijzer naar de bovenliggende CMiniFrameWnd.

Opmerkingen

Zie CControlBar::EnableDocking and CFrameWnd::D ockControlBar voor meer informatie over dockable-besturingsbalken.

CControlBar::IsFloating

Roep deze lidfunctie aan om te bepalen of de besturingsbalk zwevend of gedokt is.

BOOL IsFloating() const;

Retourwaarde

Niet-nul als de besturingsbalk zwevend is; anders 0.

Opmerkingen

Als u de status van een besturingsbalk wilt wijzigen van gedokt in zwevend, roept u CFrameWnd::FloatControlBar aan.

CControlBar::m_bAutoDelete

Als het object niet-nul is, wordt het CControlBar object verwijderd wanneer de Windows-besturingsbalk wordt vernietigd.

BOOL m_bAutoDelete;

Opmerkingen

m_bAutoDelete is een openbare variabele van het type BOOL.

Een control-bar-object wordt meestal ingesloten in een framevensterobject. In dit geval is m_bAutoDelete 0 omdat het ingesloten besturingsbalkobject wordt vernietigd wanneer het framevenster wordt vernietigd.

Stel deze variabele in op een niet-nulwaarde als u een CControlBar object toewijst aan de heap en u niet van plan bent om aan te roepen delete.

CControlBar::m_pInPlaceOwner

De in-place eigenaar van de besturingsbalk.

CWnd* m_pInPlaceOwner;

CControlBar::OnUpdateCmdUI

Deze lidfunctie wordt aangeroepen door het framework om de status van de werkbalk of statusbalk bij te werken.

virtual void OnUpdateCmdUI(
    CFrameWnd* pTarget,
    BOOL bDisableIfNoHndler) = 0;

Parameterwaarden

pTarget
Verwijst naar het hoofdframevenster van de toepassing. Deze aanwijzer wordt gebruikt voor het routeren van updateberichten.

bDisableIfNoHndler
Vlag die aangeeft of een besturingselement met geen updatehandler automatisch moet worden weergegeven als uitgeschakeld.

Opmerkingen

Als u een afzonderlijke knop of deelvenster wilt bijwerken, gebruikt u de ON_UPDATE_COMMAND_UI macro in uw berichtoverzicht om een updatehandler op de juiste manier in te stellen. Zie ON_UPDATE_COMMAND_UI voor meer informatie over het gebruik van deze macro.

OnUpdateCmdUI wordt aangeroepen door het framework wanneer de toepassing niet actief is. Het framevenster dat moet worden bijgewerkt, moet een onderliggend venster zijn, ten minste indirect, van een zichtbaar kadervenster. OnUpdateCmdUI is een geavanceerd overschrijfbaar.

CControlBar::SetBarStyle

Roep deze functie aan om de gewenste CBRS_ stijlen voor de besturingsbalk in te stellen.

void SetBarStyle(DWORD dwStyle);

Parameterwaarden

dwStyle-
De gewenste stijlen voor de besturingsbalk. Dit kan een of meer van de volgende zijn:

  • CBRS_ALIGN_TOP Hiermee kan de besturingsbalk boven aan het clientgebied van een framevenster worden gedokt.

  • CBRS_ALIGN_BOTTOM Hiermee kan de besturingsbalk onder aan het clientgebied van een framevenster worden gedokt.

  • CBRS_ALIGN_LEFT Hiermee kan de besturingsbalk aan de linkerkant van het clientgebied van een framevenster worden gedokt.

  • CBRS_ALIGN_RIGHT Hiermee kan de besturingsbalk aan de rechterkant van het clientgebied van een framevenster worden gedokt.

  • CBRS_ALIGN_ANY Hiermee kan de besturingsbalk aan elke kant van het clientgebied van een framevenster worden gedokt.

  • CBRS_BORDER_TOP Zorgt ervoor dat een rand op de bovenrand van de besturingsbalk wordt getekend wanneer deze zichtbaar is.

  • CBRS_BORDER_BOTTOM Zorgt ervoor dat een rand wordt getekend aan de onderrand van de besturingsbalk wanneer deze zichtbaar is.

  • CBRS_BORDER_LEFT Zorgt ervoor dat een rand aan de linkerkant van de besturingsbalk wordt getekend wanneer deze zichtbaar is.

  • CBRS_BORDER_RIGHT Zorgt ervoor dat een rand wordt getekend aan de rechterkant van de besturingsbalk wanneer deze zichtbaar is.

  • CBRS_FLOAT_MULTI Kunt u meerdere besturingsbalken laten zweven in één miniframevenster.

  • CBRS_TOOLTIPS Zorgt ervoor dat knoptips worden weergegeven voor de besturingsbalk.

  • CBRS_FLYBY Zorgt ervoor dat berichttekst tegelijkertijd wordt bijgewerkt als knopinfo.

  • CBRS_GRIPPER Veroorzaakt een grijper, vergelijkbaar met die op banden in een CReBar object, worden getekend voor een CControlBar-afgeleide klasse.

Opmerkingen

Heeft geen invloed op de instellingen voor WS_ (vensterstijl).

CControlBar::SetBorders

Roep deze functie aan om de grootte van de randen van de besturingsbalk in te stellen.

void SetBorders(
    int cxLeft = 0,
    int cyTop = 0,
    int cxRight = 0,
    int cyBottom = 0);

void SetBorders(LPCRECT lpRect);

Parameterwaarden

cxLeft
De breedte (in pixels) van de linkerrand van de besturingsbalk.

cyTop
De hoogte (in pixels) van de bovenrand van de besturingsbalk.

cxRight
De breedte (in pixels) van de rechterrand van de besturingsbalk.

cyBottom
De hoogte (in pixels) van de onderrand van de besturingsbalk.

lpRect
Een aanwijzer naar een CRect-object dat de huidige breedte (in pixels) van elke rand van het besturingsbalkobject bevat.

Example

In het volgende codevoorbeeld worden de boven- en onderranden van de besturingsbalk ingesteld op 5 pixels en de linker- en rechterranden op 2 pixels:

CControlBar &m_myControlBar = m_Rebar;
m_myControlBar.SetBorders(2, 5, 2, 5);

CControlBar::SetInPlaceOwner

Hiermee wijzigt u de in-place eigenaar van een besturingsbalk.

void SetInPlaceOwner(CWnd* pWnd);

Parameterwaarden

pWnd
Een aanwijzer naar een CWnd object.

Opmerkingen

Zie ook

MFC-voorbeeld CTRLBARS
CWnd-klasse
Hiërarchiegrafiek
CToolBar-klasse
CDialogBar-klasse
CStatusBar-klasse
CReBar-klasse