Interfész elemek

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.

Ez a dokumentum a Visual Studio 2008 SP1-ben bevezetett felületi elemeket ismerteti, valamint a kódtár korábbi verziójával való különbségeket is ismerteti.

Az alábbi ábrán egy alkalmazás látható, amely az új felületelemek használatával készült.

MFC feature Pack példaalkalmazás.

Ablak dokkolása

Ablakdokkoló funkció hasonló ahhoz, amelyet a Visual Studio grafikus felhasználói felülete használ.

A vezérlősávok most panelek

A vezérlősávok mostantól panelekként ismertek, és a CBasePane osztályból származnak. Az MFC korábbi verzióiban a vezérlősávok alaposztálya a következő volt CControlBar: .

Az alkalmazás fő keretablakát általában a CFrameWndEx osztály vagy a CMDIFrameWndEx osztály képviseli. A fő keret neve dokkhely. A panelek három szülőtípus egyikével rendelkezhetnek: egy dokkolóhely, egy dokkolósáv vagy egy minikeretes ablak.

A paneleknek két típusa van: nem átméretezhető és átméretezhető. Az átméretezhető ablaktáblák, például az állapotsávok és az eszköztárak felosztók vagy csúszkák használatával átméretezhetők. Az átméretezhető ablaktáblák tárolókat alkothatnak (az egyik panel rögzíthető egy másik ablaktáblához, és elválasztót hozhat létre közöttük). Az átméretezhető ablaktáblák azonban nem csatolhatók (rögzítve) a dokkolósávokhoz.

Ha az alkalmazás nem átméretezhető ablaktáblákat használ, a CPane osztályból származtathatja őket. Ha az alkalmazás átméretezhető paneleket használ, a CDockablePane osztályból származtathatja őket

Dokkolóhely

A dokkolóhely (vagy a fő keretablak) birtokolja az alkalmazás összes paneljét és minikeretes ablakát. A dokkolóhely egy CDockingManager-tagot tartalmaz. Ez a tag fenntartja a dokkhelyhez tartozó összes panel listáját. A lista úgy van rendezve, hogy a dokkoló hely külső szélein létrehozott panelek a lista elején legyenek elhelyezve. Amikor a keretrendszer újrarajzolja a dokkolási helyet, a listában végighalad, és az egyes panelek elrendezését úgy állítja be, hogy az tartalmazza a dokkolási hely aktuális határoló téglalapját. Meghívhatja a AdjustDockingLayout vagy a RecalcLayout elemeket, amikor módosítania kell a dokkolás elrendezését, és a keretrendszer átirányítja ezt a hívást a dokkolókezelőnek.

Dokkolósávok

Minden fő keretablak a szegélyek mentén elhelyezheti a dokkolósávokat . A dokkolósáv egy CDockSite osztályhoz tartozó panel. A docksávok a CPane-ból származó objektumokat, például az eszköztárakat is elfogadhatják. Ha dokksávokat szeretne létrehozni a fő keretablak inicializálásakor, hívja meg a következőt EnableDocking: . Az automatikus elrejtés engedélyezéséhez hívja meg a EnableAutoHideBars elemet. EnableAutoHideBars CAutoHideDockSite objektumokat hoz létre, és elhelyezi őket az egyes dokkolósávok mellett.

Minden dokksáv dokksorokra van osztva. A dokkolósorokat a CDockingPanesRow osztály jelöli. Minden dokkolósor tartalmazza az eszköztárak listáját. Ha egy felhasználó rögzít egy eszköztárat, vagy áthelyezi az eszköztárat az egyik sorból a másikba ugyanazon a dokkolósávon belül, a keretrendszer vagy létrehoz egy új sort, és ennek megfelelően átméretezi a dokkolósávot, vagy egy meglévő sorban helyezi el az eszköztárat.

Minikeretes ablakok

A lebegő ablaktábla egy minikeretes ablakban található. A minikeretes ablakokat két osztály jelöli: CMDITabInfo osztály (amely csak egy panelt tartalmazhat) és a CMultiPaneFrameWnd osztály (amely több ablaktáblát is tartalmazhat). Ha egy panelt szeretne lebegtetni a kódban, hívja meg a CBasePane::FloatPane parancsot. Az ablaktábla lebegése után a keretrendszer automatikusan létrehoz egy minikeretablakot, és ez a minikeretablak lesz a lebegő ablaktábla szülője. Amikor a lebegő ablaktábla dokkol, a keretrendszer újra beállítja a szülőjét, és a lebegő ablaktábla dokksávvá (eszköztárakhoz) vagy dokkolóhelyé (átméretezhető ablaktáblákhoz) válik.

Panelelválasztók

A panelelválasztókat (más néven csúszkákat vagy osztókat) a CPaneDivider osztály jelöli. Amikor egy felhasználó rögzít egy panelt, a keretrendszer ablaktáblaelválasztókat hoz létre, függetlenül attól, hogy az ablaktábla a dokkolóhelyen vagy egy másik ablaktáblán van rögzítve. Amikor egy panel a dokkolási helyhez csatlakozik, az ablaktábla elválasztót alapértelmezett ablaktábla elválasztónak nevezik. Az alapértelmezett ablaktábla-elválasztó felelős a dokkoló hely összes dokkoló ablaktáblájának elrendezéséért. A dokkolókezelő fenntartja az alapértelmezett panelelválasztók listáját és a panelek listáját. A dokkoló kezelői felelősek az összes dokkolópanel elrendezéséért.

Containers

Az összes átméretezhető ablaktáblát tárolókban tartják, amikor egymáshoz vannak rögzítve. A tárolókat a CPaneContainer osztály képviseli. Minden tárolónak vannak mutatói a bal oldali panelre, a jobb oldali ablaktáblára, a bal oldali altárolóra, a jobb oldali altárolóra, valamint a bal és a jobb oldali részek közötti elválasztóra. (A bal és a jobb oldal nem fizikai oldalra utal, hanem inkább egy faszerkezet ágainak azonosítására.) Ily módon panelek és osztók fáját építhetjük fel, így összetett elrendezéseket érhetünk el, amelyek együtt méretezhetők. Az CPaneContainer osztály fenntartja a tárolók fáját, és két listát is tart fenn az ebben a fában található ablaktáblákról és csúszkákról. A paneltároló-kezelők általában több ablaktáblát tartalmazó alapértelmezett csúszkákba és minikeretes ablakokba vannak beágyazva.

Vezérlősávok automatikus elrejtése

Alapértelmezés szerint mindegyik CDockablePane támogatja az automatikus elrejtés funkciót. Amikor egy felhasználó a CDockablePane feliratán lévő rögzítőgombra kattint, a keretrendszer az ablaktáblát automatikus elrejtési módra állítja. A kattintás kezeléséhez a keretrendszer létrehoz egy CMFCAutoHideBar-osztályt és egy CMFCAutoHideButton osztályt az CMFCAutoHideBar objektumhoz. A keretrendszer az új CMFCAutoHideBar-t a CAutoHideDockSite-on helyezi el. A keretrendszer az CMFCAutoHideButton elemet is csatolja az eszköztárhoz. A CDockingManager osztály fenntartja a CDockablePane.

Többlapos vezérlősávok és Outlook-sávok

A CMFCBaseTabCtrl osztály megvalósítja a levehető lapokkal rendelkező többlapos ablak alapvető funkcióját. Objektum használatához az alkalmazásban inicializáljon egy CMFCBaseTabCtrl. CBaseTabbedPane egy objektumból CDockablePane származik, és egy objektumra mutató CMFCBaseTabCtrl mutatót tart fenn. CBaseTabbedPane lehetővé teszi a felhasználók számára a többlapos vezérlősávok rögzítését és átméretezését. A CDockablePane::AttachToTabWnd használatával dinamikusan hozhat létre rögzített és fülekbe rendezett vezérlősávokat.

Az Outlook sáv vezérlőeleme lapozott sávokon is alapul. A CMFCOutlookBar osztály a következőből CBaseTabbedPaneszármazik: . Az Outlook-sáv használatáról további információt a CMFCOutlookBar osztályban talál.

Lásd még

fogalmak