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.:

Opcja paska narzędzi Kreatora aplikacji

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 w kodzie

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:

  1. CToolBar Wywołuje funkcję elementu członkowskiego Create obiektu w celu utworzenia bazowego obiektu CToolBarCtrl.

  2. Wywołuje element LoadToolBar , aby załadować informacje o zasobie paska narzędzi.

  3. 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.

Edytowanie zasobu paska 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.

Wiele 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:

Co chcesz dowiedzieć się więcej o

Zobacz też

MFC, implementacja paska narzędzi