Udostępnij za pośrednictwem


Instruktaż: Wprowadzanie formanty na paskach narzędzi

W tym temacie opisano, jak dodać przycisk paska narzędzi, zawierający formant Windows do paska narzędzi.W MFC, przycisku paska narzędzi musi być Klasa CMFCToolBarButton-uzyskane klasy, na przykład Klasa CMFCToolBarComboBoxButton, Klasa CMFCToolBarEditBoxButton, Klasa CMFCDropDownToolbarButton, lub Klasa CMFCToolBarMenuButton.

Dodawanie formantów do pasków narzędzi

Aby dodać formant do paska narzędzi, wykonaj następujące kroki:

  1. Zarezerwować Identyfikatora fikcyjnego zasobu dla przycisku w nadrzędnej zasobów narzędzi.Aby uzyskać więcej informacji na temat tworzenia przycisków za pomocą narzędzi edytora w Visual Studio, zobacz Pasek narzędzi edytora tematu.

  2. Rezerwy pasek narzędzi obrazu (ikona przycisku) przycisku w wszystkich map bitowych paska narzędzi nadrzędnej.

  3. Programu obsługi wiadomości, która przetwarza AFX_WM_RESETTOOLBAR wiadomości, wykonaj następujące czynności:

    1. Konstruowanie formant przycisku za pomocą CMFCToolbarButton-klasy.

    2. Zastąpić manekina przycisk Nowy formant za pomocą CMFCToolBar::ReplaceButton.Można utworzyć obiekt przycisku na stosie, ponieważ ReplaceButton kopiuje obiekt przycisku i przechowuje kopię.

[!UWAGA]

Jeśli włączono dostosowywania aplikacji może mieć zresetować pasek narzędzi przy użyciu zresetować przycisk na Paski narzędzi na karcie Dostosuj okno dialogowe, aby wyświetlić zaktualizowany formant w aplikacji po ponownej kompilacji.Stan paska narzędzi jest zapisany w rejestrze systemu Windows i informacje rejestru jest ładowana i stosowana po ReplaceButton metoda jest wykonywany podczas uruchamiania aplikacji.

Formanty paska narzędzi i dostosowywanie

Polecenia na karcie Dostosuj okno dialogowe zawiera listę poleceń, które są dostępne w aplikacji.Domyślnie Dostosuj okno dialogowe przetwarza menu aplikacji i buduje wykaz standardowe przyciski paska narzędzi w każdej kategorii menu.Aby zachować rozszerzone funkcje dostarczające formanty paska narzędzi, należy zastąpić przycisk na pasku narzędzi Standardowy formantu niestandardowego w Dostosuj okno dialogowe.

Po włączeniu dostosowywania utworzyć Dostosuj okno dialogowe Dostosowywanie obsługi OnViewCustomize za pomocą Klasa CMFCToolBarsCustomizeDialog klasy.Przed wyświetleniem Dostosuj okno dialogowe, wywołując CMFCToolBarsCustomizeDialog::Create, call CMFCToolBarsCustomizeDialog::ReplaceButton do zastąpienia standardowego przycisku z nowego formantu.

Przykład: Tworzenie pola kombi Znajdź

W tej sekcji opisano sposób tworzenia Find formant pola kombi, który pojawia się na pasku narzędzi i zawiera ostatnio używane do wyszukiwania ciągów.Użytkownik może wpisać ciąg znaków w formancie i następnie naciśnij klawisz enter, aby przeszukiwać dokument lub naciśnij klawisz ESC, aby przywrócić fokus w ramce głównej.W tym przykładzie założono, że dokument jest wyświetlany w Klasa CEditView-pochodzące z widoku.

Bb983718.collapse_all(pl-pl,VS.110).gifTworzenie formantu Znajdź

Najpierw należy utworzyć Find formant pola kombi:

  1. Dodawanie przycisku i polecenia do zasobów aplikacji:

    1. W zasoby aplikacji Dodaj nowy przycisk z ID_EDIT_FIND identyfikator polecenia paska narzędzi w aplikacji i mapy bitowe, wszelkie skojarzone z paska narzędzi.

    2. Utwórz nowy element menu z identyfikatorem ID_EDIT_FIND polecenia.

    3. Dodaj nowy ciąg "Find text\nFind" do tabeli ciągów i przypisać jej ID_EDIT_FIND_COMBO polecenia identyfikatora.Identyfikator ten będzie używany jako identyfikator polecenia Find przycisku pole kombi.

      [!UWAGA]

      Ponieważ ID_EDIT_FIND jest standardowe polecenie, które są przetwarzane przez CEditView, nie jest wymagane do wprowadzenia w życie specjalnych obsługi dla tego polecenia.Jednakże należy zaimplementować obsługę nowego polecenia ID_EDIT_FIND_COMBO.

  2. Utwórz nową klasę CFindComboBox, pochodzący z Klasa CComboBox.

  3. W CFindComboBox klasy, zastąpić PreTranslateMessage metoda wirtualna.Metoda ta umożliwi pole kombi, aby przetworzyć WM_KEYDOWN wiadomości.Jeśli użytkownik wciśnie klawisz escape (VK_ESCAPE), ponownie okno główna ramka fokusu.Jeśli użytkownik wciśnie klawisz Enter (VK_ENTER), Księgowanie w oknie głównym ramki WM_COMMAND wiadomość zawierającą ID_EDIT_FIND_COMBO polecenia identyfikatora.

  4. Tworzenie klasy dla Find przycisku pole kombi, pochodzące z Klasa CMFCToolBarComboBoxButton.W tym przykładzie jest o nazwie CFindComboButton.

  5. Konstruktor CMFCToolbarComboBoxButton przyjmuje trzy parametry: Identyfikator polecenia przycisku, przycisk Indeks obrazu i stylu pola kombi.Te parametry należy ustawić w następujący sposób:

    1. Przekazać ID_EDIT_FIND_COMBO jako identyfikatora polecenia.

    2. Użyj CCommandManager::GetCmdImage z ID_EDIT_FIND Aby uzyskać indeks obrazu.

    3. Listy stylów pole kombi dostępna, zobacz Style pola kombi.

  6. W CFindComboButton klasy, zastąpić CMFCToolbarComboBoxButton::CreateCombo metody.W tym miejscu należy utworzyć CFindComboButton object i zwrócić wskaźnika.

  7. Użyj IMPLEMENT_SERIAL makro trwałego przycisku kombi.Menedżer obszaru roboczego automatycznie ładuje i zapisuje w rejestrze systemu Windows, przycisk Stan.

  8. Wdrożenie ID_EDIT_FIND_COMBO obsługi w widoku dokumentu.Użyj CMFCToolBar::GetCommandButtons z ID_EDIT_FIND_COMBO pobranie wszystkich Find przyciski pola kombi.Ze względu na dostosowanie może być kilka kopii przycisk z tego samego Identyfikatora polecenia.

  9. Programu obsługi wiadomości ID_EDIT_FIND OnFind, użyj CMFCToolBar::IsLastCommandFromButton do określenia, czy polecenia Znajdź została wysłana z Find przycisku pole kombi.Jeśli tak, znaleźć tekst, a następnie dodać ciąg wyszukiwania w polu kombi.

Bb983718.collapse_all(pl-pl,VS.110).gifDodawanie formantu Znajdź do paska narzędzi głównego

Aby dodać przycisk pola kombi do paska narzędzi, wykonaj następujące kroki:

  1. Wdrożenie AFX_WM_RESETTOOLBAR obsługi wiadomości OnToolbarReset w oknie głównym ramki.

    [!UWAGA]

    Ramy wysyła tę wiadomość w oknie głównym ramki podczas inicjowania podczas uruchamiania aplikacji pasek narzędzi lub pasek narzędzi jest resetowane podczas dostosowywania.W każdym przypadku należy zastąpić przycisk na pasku narzędzi Standardowy z niestandardowym Find przycisku pole kombi.

  2. W AFX_WM_RESETTOOLBAR obsługi, zbadać identyfikator paska narzędzi, to znaczy, WPARAM z AFX_WM_RESETTOOLBAR wiadomości.Jeśli identyfikator paska narzędzi jest równe pasek narzędzi zawierający Find przycisku pole kombi, wywołanie CMFCToolBar::ReplaceButton zastąpić Find przycisk (czyli przycisk o identyfikatorze polecenia ID_EDIT_FIND) z CFindComboButton obiektu.

    [!UWAGA]

    Można skonstruować CFindComboBox obiektów na stosie, ponieważ ReplaceButton kopiuje obiekt przycisku i przechowuje kopię.

Bb983718.collapse_all(pl-pl,VS.110).gifDodawanie formantu Znajdź do okna dialogowego Dostosuj

Dostosowywanie programu obsługi OnViewCustomize, call CMFCToolBarsCustomizeDialog::ReplaceButton do zastąpienia Find przycisk (the button o identyfikatorze polecenia ID_EDIT_FIND) z CFindComboButton obiektu.

Zobacz też

Informacje

Wykres hierarchii

Klasa CMFCToolBar

Klasa CMFCToolBarButton

Klasa CMFCToolBarComboBoxButton

Klasa CMFCToolBarsCustomizeDialog

Inne zasoby

Klasy MFC