Udostępnij za pośrednictwem


Elementy interfejsu

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.

Przykładowa aplikacja pakietu funkcji MFC.

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ę CMFCBaseTabCtrlCBaseTabbedPane 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.

Zobacz także

Pojęcia