Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
In dit document worden interface-elementen beschreven die zijn geïntroduceerd in Visual Studio 2008 SP1 en worden ook verschillen beschreven met de eerdere versie van de bibliotheek.
In de volgende afbeelding ziet u een toepassing die is gebouwd met behulp van de nieuwe interface-elementen.
Venster verankeren
De functionaliteit voor het dokken van vensters lijkt op de venster-docking die de grafische gebruikersinterface van Visual Studio hanteert.
Besturingsbalken zijn nu deelvensters
Besturingsbalken worden nu deelvensters genoemd en zijn afgeleid van CBasePane Class. In eerdere versies van MFC was CControlBarde basisklasse van besturingsbalken.
Het hoofdframevenster van de toepassing wordt meestal vertegenwoordigd door de CFrameWndEx-klasse of de CMDIFrameWndEx-klasse. Het hoofdframe wordt de docksite genoemd. Deelvensters kunnen een van de drie typen ouders hebben: een aanlegplaats, een dockbalk of een miniframevenster.
Er zijn twee typen deelvensters: niet-resizable en resizable. U kunt het formaat van deelvensters, zoals statusbalken en werkbalken, wijzigen door splitters of schuifregelaars te gebruiken. Deelvensters die van formaat kunnen veranderen, kunnen dienen als containers (één deelvenster kan worden gekoppeld aan een ander deelvenster, waardoor er een verdeler tussen hen ontstaat). Verstelbare deelvensters kunnen echter niet worden vastgemaakt aan dockbalken.
Als uw toepassing niet-aanpasbare deelvensters gebruikt, moet u deze afleiden uit De CPane-Klasse. Als uw toepassing resizable deelvensters gebruikt, moet u deze afleiden uit de klasse CDockablePane
Doklocatie
De docksite (of het hoofdframevenster) is eigenaar van alle deelvensters en miniframevensters in een toepassing. De docksite bevat een CDockingManager-lid . Dit lid onderhoudt een lijst met alle deelvensters die deel uitmaken van de docksite. De lijst wordt zo geordend dat de vensters die zich aan de buitenranden van de docksite bevinden, aan het begin van de lijst worden geplaatst. Wanneer het framework de docksite opnieuw tekent, wordt deze lijst herhaald en wordt de indeling van elk deelvenster aangepast om de huidige begrenzingsrechthoek van de docksite op te nemen. U kunt AdjustDockingLayout of RecalcLayout aanroepen wanneer u de dockinglayout moet aanpassen en het framework leidt deze oproep om naar de dockingmanager.
Dock-balken
Elk hoofdframevenster kan dokbalken langs de randen plaatsen. Een dockbalk is een deelvenster dat onderdeel is van een CDockSite-klasse. Dock-balken kunnen objecten accepteren die zijn afgeleid van CPane, zoals werkbalken. Als u dockbalken wilt maken wanneer het hoofdframevenster wordt geïnitialiseerd, roept u het aan EnableDocking. Als u balken automatisch verbergen wilt inschakelen, roept u het aan EnableAutoHideBars.
EnableAutoHideBars maakt CAutoHideDockSite-objecten en plaatst deze naast elke dockbalk.
Elke dockbalk is onderverdeeld in dockrijen. Dock-rijen worden vertegenwoordigd door de klasse CDockingPanesRow. Elke rij in het dock bevat een lijst met werkbalken. Als een gebruiker een werkbalk vastzet of de werkbalk verplaatst van de ene rij naar de andere binnen dezelfde dockbalk, maakt het framework een nieuwe rij en wijzigt het formaat van de dockbalk dienovereenkomstig, of wordt de werkbalk op een bestaande rij geplaatst.
Mini-kozijnen
Een zwevend deelvenster bevindt zich in een miniframevenster. Miniframevensters worden vertegenwoordigd door twee klassen: CMDITabInfo-klasse (die slechts één deelvenster kan bevatten) en CMultiPaneFrameWnd-klasse (die meerdere deelvensters kan bevatten). Als u een deelvenster in uw code wilt laten zweven, roept u CBasePane::FloatPane aan. Nadat een deelvenster zweeft, maakt het framework automatisch een miniframevenster aan en wordt dat miniframevenster het bovenliggende deelvenster van het zwevende paneel. Wanneer het zwevende deelvenster wordt vastgezet, stelt het framework het bovenliggende opnieuw in en wordt het zwevende deelvenster een dockbalk (voor werkbalken) of een aanmeersite (voor verstelbare deelvensters).
Deelvensterscheidingslijnen
Deelvensterscheidingslijnen (ook wel schuifregelaars of splitters genoemd) worden vertegenwoordigd door de klasse CPaneDivider. Wanneer een gebruiker een venster dockt, maakt het framework scheidingslijnen voor vensters, ongeacht of het venster gedokt is op de docksite of bij een ander venster. Wanneer een deelvenster wordt gekoppeld aan de docksite, wordt de deelvensterscheidingslijn de standaarddeelvensterscheiding genoemd. De standaard scheiding voor deelvensters is verantwoordelijk voor de indeling van alle dockingvensters op de doklocatie. Dock Manager onderhoudt een lijst met standaarddeelvensterscheidingen en een lijst met deelvensters. Dockbeheerders zijn verantwoordelijk voor de indeling van alle aanmeervensters.
Verpakkingen
Alle aanpasbare deelvensters, wanneer ze aan elkaar zijn gekoppeld, worden geplaatst in containers. Containers worden vertegenwoordigd door de klasse CPaneContainer. Elke container heeft aanwijzers naar het linkerdeelvenster, het rechterdeelvenster, de linkersubcontainer, de rechtersubcontainer en de splitser tussen de linker- en rechteronderdelen. (Links en rechts verwijzen niet naar fysieke zijden, maar identificeren de takken van een boomstructuur.) Op deze manier kunnen we een structuur van deelvensters en splitters bouwen en daarom complexe indelingen van deelvensters bereiken die samen kunnen worden aangepast. De CPaneContainer klasse onderhoudt de structuur van containers; er worden ook twee lijsten met deelvensters en schuifregelaars bijgehouden die zich in deze structuur bevinden. Deelvensterbeheerprogramma's worden doorgaans ingesloten in standaard schuifregelaars en miniframevensters die meerdere deelvensters bevatten.
Besturingsbalken automatisch verbergen
Standaard ondersteunt elk CDockablePane de functie voor automatisch verbergen. Wanneer een gebruiker op de vastzetknop klikt in het bijschrift van de CDockablePane, zet het framework het deelvenster in de modus automatisch verbergen. Als u de klik wilt afhandelen, maakt het framework een CMFCAutoHideBar-klasse en een CMFCAutoHideButton-klasse die is gekoppeld aan het CMFCAutoHideBar object. Het framework plaatst het nieuwe CMFCAutoHideBar op de CAutoHideDockSite. Het framework koppelt ook de CMFCAutoHideButton aan de werkbalk. De CDockingManager-klasse onderhoudt de CDockablePane.
Besturingselementbalken met tabbladen en Outlook-balken
De CMFCBaseTabCtrl-klasse implementeert de basisfunctionaliteit van een venster met tabbladen met losgekoppelde tabbladen. Als u een CMFCBaseTabCtrl object wilt gebruiken, initialiseert u een CBaseTabbedPane-klasse in uw toepassing.
CBaseTabbedPane is afgeleid van CDockablePane en onderhoudt een aanwijzer naar een CMFCBaseTabCtrl object.
CBaseTabbedPane stelt gebruikers in staat om besturingsbalken op tabbladen te docken en het formaat ervan aan te passen. Gebruik CDockablePane::AttachToTabWnd om dynamisch bedieningsbalken te maken die gedokt en als tabblad zijn.
Het Outlook-balkcontrole is ook gebaseerd op tabbladen. De CMFCOutlookBar-klasse is afgeleid van CBaseTabbedPane. Zie CMFCOutlookBar Class voor meer informatie over het gebruik van de Outlook-balk.