Paski narzędzi — podstawowe założenia
W tym artykule opisano podstawową implementację MFC, która umożliwia dodanie domyślnego paska narzędzi do aplikacji przez wybranie opcji w Kreatorze aplikacji. Omawiane tematy to m.in.:
Aby uzyskać pojedynczy pasek narzędzi z przyciskami domyślnymi, wybierz opcję Pasek narzędzi Dokowanie w warstwie Standardowa na stronie z etykietą Funkcje interfejsu użytkownika. Spowoduje to dodanie kodu do aplikacji, który:
Tworzy obiekt paska narzędzi.
Zarządza paskiem narzędzi, w tym jego możliwością dokowania lub pływania.
Pasek narzędzi jest obiektem CToolBar zadeklarowanym jako element członkowski danych klasy aplikacji CMainFrame
. Innymi słowy, obiekt paska narzędzi jest osadzony w głównym obiekcie okna ramki. Oznacza to, że MFC tworzy pasek narzędzi podczas tworzenia okna ramki i niszczy pasek narzędzi, gdy niszczy okno ramki. Następująca deklaracja klasy częściowej dla aplikacji interfejsu wielu dokumentów (MDI) przedstawia składowe danych dla osadzonego paska narzędzi i osadzonego paska stanu. Pokazuje również przesłonięcia funkcji składowej OnCreate
.
class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
Tworzenie paska narzędzi odbywa się w programie CMainFrame::OnCreate
. MFC wywołuje metodę OnCreate po utworzeniu okna dla ramki, ale zanim stanie się widoczny. Ustawienie domyślne OnCreate
generowane przez Kreatora aplikacji wykonuje następujące zadania paska narzędzi:
CToolBar
Wywołuje funkcję elementu członkowskiego Create obiektu w celu utworzenia bazowego obiektu CToolBarCtrl.Wywołuje element LoadToolBar , aby załadować informacje o zasobie paska narzędzi.
Wywołuje funkcje umożliwiające dokowanie, przestawne i wskazówki dotyczące narzędzi. Aby uzyskać szczegółowe informacje na temat tych wywołań, zobacz artykuł Docking and Floating Toolbars (Dokowanie i przestawne paski narzędzi).
Uwaga
Przykładowe narzędzie DOCKTOOL MFC zawiera ilustracje zarówno starych, jak i nowych pasków narzędzi MFC. Paski narzędzi, które używają COldToolbar
wywołań w kroku 2 do LoadBitmap
(zamiast LoadToolBar
) i do SetButtons
. Nowe paski narzędzi wymagają wywołań funkcji LoadToolBar
.
Wywołania wskazówek dotyczących zadokowania, pływającego i narzędzia są opcjonalne. Jeśli wolisz, możesz usunąć te wiersze OnCreate
. Wynik jest paskiem narzędzi, który pozostaje stały, nie może unosić się ani ponownie oddokować i nie może wyświetlić wskazówek dotyczących narzędzi.
Domyślny pasek narzędzi, który otrzymujesz za pomocą Kreatora aplikacji, jest oparty na RT_TOOLBAR zasobie niestandardowym wprowadzonym w MFC w wersji 4.0. Ten zasób można edytować za pomocą edytora paska narzędzi. Edytor umożliwia łatwe dodawanie, usuwanie i rozmieszczanie przycisków. Zawiera edytor graficzny przycisków, który jest bardzo podobny do ogólnego edytora grafiki w programie Visual C++. Jeśli edytowano paski narzędzi w poprzednich wersjach programu Visual C++, zadanie będzie teraz znacznie łatwiejsze.
Aby połączyć przycisk paska narzędzi z poleceniem, należy nadać przyciskowi identyfikator polecenia, taki jak ID_MYCOMMAND
. Określ identyfikator polecenia na stronie właściwości przycisku w edytorze paska narzędzi. Następnie utwórz funkcję obsługi dla polecenia (zobacz Mapowanie komunikatów na funkcje , aby uzyskać więcej informacji).
Nowe funkcje składowe CToolBar współpracują z zasobem RT_TOOLBAR . LoadToolBar teraz ma miejsce LoadBitmap , aby załadować mapę bitową obrazów przycisków paska narzędzi i SetButtons , aby ustawić style przycisku i połączyć przyciski z obrazami map bitowych.
Aby uzyskać szczegółowe informacje na temat korzystania z edytora pasków narzędzi, zobacz Edytor pasków narzędzi.
Kreator aplikacji udostępnia jeden domyślny pasek narzędzi. Jeśli potrzebujesz więcej niż jednego paska narzędzi w aplikacji, możesz modelować kod dla dodatkowych pasków narzędzi na podstawie wygenerowanego przez kreatora kodu domyślnego paska narzędzi.
Jeśli chcesz wyświetlić pasek narzędzi w wyniku polecenia, musisz:
Utwórz nowy zasób paska narzędzi za pomocą edytora paska narzędzi i załaduj go
OnCreate
za pomocą funkcji składowej LoadToolbar.Osadź nowy obiekt CToolBar w głównej klasie okien ramowych.
Wykonaj odpowiednie wywołania funkcji,
OnCreate
aby zadokować lub unosić pasek narzędzi, ustawić jego style itd.