Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym dokumencie opisano elementy interfejsu wprowadzone w programie Visual Studio 2008 SP1, a także opisano różnice we wcześniejszej wersji biblioteki.
Poniższa ilustracja przedstawia aplikację utworzoną przy użyciu nowych elementów interfejsu.
Dokowanie okien
Funkcja dokowania okien przypomina to, co stosuje się w graficznym interfejsie użytkownika programu Visual Studio.
Paski kontrolek to teraz okienka
Paski kontrolek są teraz znane jako okienka i pochodzą z klasy CBasePane. We wcześniejszych wersjach MFC klasa bazowa pasków sterowania to CControlBar
.
Główne okno ramki aplikacji jest zwykle reprezentowane przez klasę CFrameWndEx lub klasę CMDIFrameWndEx. Główna ramka jest nazywana miejscem dokowania. Panele mogą mieć jeden z trzech typów elementów nadrzędnych: obszar dokowania, pasek dokowania lub okno mini-ramkowe.
Istnieją dwa typy okienek: o stałym rozmiarze i zmiennym rozmiarze. Można zmieniać rozmiar okienek, takich jak paski stanu i paski narzędzi, za pomocą rozdzielaczy lub suwaków. Okienka z możliwością zmiany rozmiaru mogą tworzyć kontenery (jedno okienko można zadokować do innego okienka, tworząc rozdzielacz między nimi). Nie można jednak zadokować okienek z możliwością zmiany rozmiaru do pasków dokowania.
Jeśli aplikacja używa okienek niezwiązanych z możliwością zmiany rozmiaru, należy je uzyskać z klasy CPane. Jeśli aplikacja używa okienek z możliwością zmiany rozmiaru, utwórz je z klasy CDockablePane
Witryna docku
Witryna docku (lub główne okno ramowe) jest właścicielem wszystkich okienek i mini-ramek w aplikacji. Witryna docku zawiera składnik CDockingManager. Ten członek przechowuje listę wszystkich okienek należących do obszaru docku. Lista jest uporządkowana tak, aby okienka utworzone na zewnętrznych krawędziach miejsca dokowania zostały umieszczone na początku listy. Gdy platforma ponownie rysuje obszar dokowania, przechodzi przez tę listę i dostosowuje układ każdego okienka, aby uwzględniać bieżący prostokąt ograniczający obiektu dokowania. Możesz wywołać AdjustDockingLayout
lub RecalcLayout
w celu dostosowania układu dokowania, a framework przekierowuje to wywołanie do menedżera dokowania.
Paski dokowania
Każde główne okno ramowe może ustawić słupki dokowania wzdłuż swoich obramowań. Pasek dokowania to panel należący do klasy CDockSite. Paski dokujące mogą akceptować obiekty pochodzące z CPane, takie jak paski narzędzi. Aby utworzyć paski dokowania po zainicjowaniu głównego okna ramowego, wywołaj metodę EnableDocking
. Aby włączyć automatyczne ukrywanie pasków, wywołaj metodę EnableAutoHideBars
.
EnableAutoHideBars
tworzy obiekty CAutoHideDockSite i umieszcza je obok każdego paska dokowania.
Każdy pasek stacji dokującej jest podzielony na wiersze stacji dokującej. Wiersze docku są reprezentowane przez klasę CDockingPanesRow. Każdy wiersz docku zawiera listę pasków narzędzi. Jeśli użytkownik zadokuje pasek narzędzi lub przeniesie pasek narzędzi z jednego wiersza do drugiego na tym samym obszarze dokowania, framework albo utworzy nowy wiersz i odpowiednio dostosuje rozmiar obszaru dokowania, albo umieści pasek narzędzi w istniejącym wierszu.
Okna mini-ramowe
Unoszący się panel znajduje się w oknie z mini-ramką. Okna mini-ramowe są reprezentowane przez dwie klasy: KLASA CMDITabInfo (która może zawierać tylko jedno okienko) i klasa CMultiPaneFrameWnd (która może zawierać kilka okienek). Aby unosić okienko w kodzie, wywołaj metodę CBasePane::FloatPane. Gdy okienko zostanie odłączone, platforma automatycznie tworzy mini-ramkę, a ta mini-ramka staje się elementem nadrzędnym odłączonego okienka. Gdy przestawne okienko dokuje, platforma resetuje jego element nadrzędny, a przestawne okienko staje się paskiem doku (dla pasków narzędzi) lub lokacją docku (w przypadku okienek do zmiany rozmiaru).
Podziały szyb
Podziały okienka (nazywane również suwakami lub rozdzielaczami) są reprezentowane przez klasę CPaneDivider. Gdy użytkownik zadokuje okienko, platforma tworzy przegrody okienek niezależnie od tego, czy okienko jest zadokowane w miejscu dokowania, lub w innym okienku. Gdy okienko dokuje do lokacji dokowania, rozdzielacz okienka jest nazywany domyślnym podziałem okienka. Domyślny podział panelu odpowiada za układ wszystkich okienek dokowania w lokalizacji dokowania. Menedżer dokowania przechowuje listę domyślnych przegród okienek i listę okienek. Menedżerowie dokowania są odpowiedzialni za układ wszystkich okienek dokowania.
Pojemniki
Wszystkie okienka z możliwością zmiany rozmiaru, kiedy są połączone, są umieszczane w kontenerach. Kontenery są reprezentowane przez klasę CPaneContainer. Każdy kontener ma wskaźniki do lewego okienka, prawego okienka, lewego podkonteneru, prawego podkonteneru oraz separatora między częściami lewej i prawej strony. (Lewe i prawe nie odnoszą się do fizycznych stron, ale raczej identyfikują gałęzie struktury drzewa). W ten sposób możemy utworzyć drzewo okienek i rozdzielaczy, a tym samym osiągnąć złożone układy okienek, które można zmienić razem. Klasa CPaneContainer
obsługuje drzewo kontenerów; obsługuje również dwie listy okienek i suwaków znajdujących się w tym drzewie. Menedżerowie kontenerów paneli są zwykle osadzani w domyślnych suwakach i oknach miniframe'owych, zawierających wiele paneli.
Automatyczne ukrywanie pasków kontrolek
Domyślnie każda z nich CDockablePane
obsługuje funkcję automatycznego ukrywania. Gdy użytkownik kliknie przycisk przypinania w podpisie CDockablePane
, platforma przełącza okienko na tryb automatycznego ukrywania. Aby obsłużyć kliknięcie, struktura tworzy klasę CMFCAutoHideBar i klasę CMFCAutoHideButton skojarzona z obiektem CMFCAutoHideBar
. Struktura wprowadza nowy CMFCAutoHideBar
element w witrynie CAutoHideDockSite. Platforma dołącza również element CMFCAutoHideButton
do paska narzędzi.
Klasa CDockingManager obsługuje klasę CDockablePane
.
Paski kontrolne z kartami i paski Outlooka
Klasa CMFCBaseTabCtrl implementuje podstawową funkcjonalność okna z odłączanymi kartami. Aby użyć obiektu, zainicjuj klasę CMFCBaseTabCtrl
CBaseTabbedPane w aplikacji.
CBaseTabbedPane
pochodzi z CDockablePane
obiektu i utrzymuje wskaźnik do CMFCBaseTabCtrl
obiektu. Funkcja CBaseTabbedPane
umożliwia użytkownikom dokowanie i zmienianie rozmiaru pasków kontrolek z kartami. Użyj CDockablePane::AttachToTabWnd , aby dynamicznie tworzyć paski sterowania, które są zadokowane i kartowane.
Paskowa kontrolka programu Outlook jest również oparta na zakładkach.
Klasa CMFCOutlookBar pochodzi z CBaseTabbedPane
. Aby uzyskać więcej informacji na temat korzystania z paska programu Outlook, zobacz KLASA CMFCOutlookBar.