TN022: implementacja poleceń standardowych
[!UWAGA]
Następująca uwaga techniczna nie został zaktualizowana od pierwszego uwzględnienia jej w dokumentacji online.W rezultacie niektóre procedury i tematy może być nieaktualne lub nieprawidłowe.Aby uzyskać najnowsze informacje, zaleca się wyszukać temat w indeksie dokumentacji online.
Uwaga ta opisuje implementacje standardowego polecenia, świadczone przez MFC 2.0.Odczyt technicznej 21 Uwaga pierwszy ponieważ opisuje mechanizmy służące do wykonania wielu standardowych poleceń.
Opis ten wymaga wiedzy na temat architektury MFC, API i powszechną praktyką programowania.Udokumentowane, jak również nieudokumentowanych "wdrożenie tylko" interfejsy API są opisane.To nie jest miejsce do rozpoczęcia nauki o funkcje lub jak program MFC.Odnoszą się do Visual C++ uzyskać więcej ogólnych informacji i szczegółów udokumentowanych interfejsów API.
Problem
MFC definiuje wiele identyfikatorów standardowego polecenia w pliku nagłówka AFXRES.H.Zmienia się ramowego obsługę tych poleceń.Opis miejsca i sposobu framework klasy uchwyt tych poleceń nie tylko pokażą jak ramach działa wewnętrznie, ale zapewni użyteczne informacje na temat dostosowywania standardowej implementacji i nauczyć kilka technik wprowadzania w życie programów obsługi własne polecenia.
Zawartość ta uwaga techniczna
Każdy identyfikator polecenia jest opisany w dwie sekcje:
Tytuł: nazwy symbolicznej identyfikator polecenia (na przykład ID_FILE_SAVE) następuje w celu polecenia (na przykład "zapisuje bieżący dokument") oddzielone dwukropkiem.
Jeden lub kilka akapitów, zawierająca opis klas, które implementuje polecenia i co robi Domyślna implementacja
Większość implementacji polecenia domyślne są okablowane framework klasy podstawowej wiadomości mapy.Istnieją niektóre implementacje polecenia, które wymagają jawne okablowania w klasie pochodnej.Są one opisane w obszarze "Uwaga".Jeśli wybrano opcję właściwe opcje w AppWizard, te domyślne programy obsługi zostaną połączone automatycznie wygenerowany szkielet aplikacji.
Konwencje nazewnictwa
Standardowe polecenia Wykonaj prosty konwencję nazewnictwa, która zaleca się użyć, jeśli jest to możliwe.Większość standardowych poleceń znajdują się w standardowych miejscach w pasku menu aplikacji.Symboliczna nazwa polecenia zaczyna się od "ID_", po której następuje nazwa standardowe menu wyskakującego, następuje nazwa elementu menu.Nazwa symboliczna jest pisany wielkimi literami z podziałom słów podkreślenia.Dla poleceń, które nie mają nazwy w menu standardowe, nazwę polecenia logiczne jest zdefiniowany począwszy od "ID_" (na przykład ID_NEXT_PANE).
Użyto prefiksu "ID_", aby wskazać poleceń, które są zaprojektowane powiązać elementów menu, przycisków paska narzędzi lub inne obiekty poleceń interfejsu użytkownika.Należy użyć polecenia obsługi obsługi polecenia "ID_" ON_COMMAND i ON_UPDATE_COMMAND_UI mechanizmów MFC polecenie architektury.
Zaleca się używać standardowego prefiksu "IDM_" dla elementów menu, które nie należy wykonać polecenie architektury i potrzebujesz kod specyficzny dla menu, aby włączyć lub wyłączyć je.Oczywiście liczba określonych poleceń menu powinna być niewielka, ponieważ po architektura polecenia MFC nie tylko sprawia, że programy obsługi polecenia bardziej zaawansowane (ponieważ one będzie działać z paskami narzędzi), ale sprawia, że kod obsługi polecenia wielokrotnego użytku.
Zakresy identyfikatorów
Można znaleźć w technicznej 20 Uwaga więcej informacji na temat stosowania zakresy identyfikatorów w MFC.
Standardowe polecenia MFC mieszczą się w zakresie od 0xE000 do 0xEFFF.Proszę nie polegać na określonych wartości tych identyfikatorów, ponieważ są one ulec zmianie w przyszłych wersjach biblioteki.
Aplikacji należy zdefiniować jego poleceń w zakresie 0x8000 do 0xDFFF.
Identyfikatory poleceń standardowych
Dla każdego Identyfikatora polecenia znajduje się standardowy komunikat wiersza monitu ciąg, który można znaleźć w pliku MONITY.RC.Identyfikator ciągu dla tego monitu menu musi być taki sam, jak dla identyfikatora polecenia.
ID_FILE_NEW tworzy/nowy, pusty dokument.
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
CWinApp::OnFileNewimplementuje tego polecenia w różny sposób w zależności od liczby szablonów dokumentów w aplikacji.Jeśli istnieje tylko jeden CDocTemplate, CWinApp::OnFileNew spowoduje utworzenie nowego dokumentu tego typu, a także odpowiedniej klasy ramki i widoku.
Jeśli istnieje więcej niż jeden CDocTemplate, CWinApp::OnFileNew będzie monitował użytkownika o dialog (AFX_IDD_NEWTYPEDLG) pozwolić im wybierz typ dokumentu.Wybranego CDocTemplate jest używany do utworzenia dokumentu.
Jednego wspólnego dostosowywania ID_FILE_NEW jest zapewnienie inną i większy wybór graficznego typów dokumentów.W takim przypadku można zaimplementować własne CMyApp::OnFileNew i umieść go na mapie wiadomości, a nie CWinApp::OnFileNew.Istnieje potrzeba do wywołania Implementacja klasy podstawowej.
Inny wspólnego dostosowywania ID_FILE_NEW jest zapewnienie osobnego polecenia do tworzenia dokumentu każdego typu.W takim przypadku należy zdefiniować nowe polecenie identyfikatorów, na przykład ID_FILE_NEW_CHART i ID_FILE_NEW_SHEET.
ID_FILE_OPEN otwiera istniejący dokument.
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
CWinApp::OnFileOpenma bardzo prosty implementacji powołania CWinApp::DoPromptFileName następuje CWinApp::OpenDocumentFile z nazwą pliku lub ścieżkę pliku do otwarcia.CWinApp Wykonania procedury DoPromptFileName Wyświetla standardowe okno dialogowe FileOpen i wypełnia ją z rozszerzeniami plików otrzymanych od bieżącego szablony dokumentów.
Jednego wspólnego dostosowywania ID_FILE_OPEN jest aby dostosować okno FileOpen lub dodać filtry dodatkowy plik.Zalecany sposób dostosować to ma zastąpić Domyślna implementacja własne okno FileOpen i wywołanie CWinApp::OpenDocumentFile z dokumentu, nazwę pliku lub ścieżkę.Istnieje potrzeba wywołanie klasy podstawowej.
ID_FILE_CLOSE powoduje zamknięcie aktualnie otwartego dokumentu.
CDocument::OnFileClose wywołania CDocument::SaveModified na monitowanie użytkownika o zapisanie dokumentu, jeśli została zmodyfikowana, a następnie wywołuje OnCloseDocument.Wszystkie logiki zamknięcia, niszczenie dokumentów, w tym odbywa się w OnCloseDocument rutynowych.
[!UWAGA]
ID_FILE_CLOSE działa inaczej, z WM_CLOSE wiadomość lub SC_CLOSE system polecenie wysłane do okna ramki dokumentów.Zamknięcie okna zamknąć dokument tylko wtedy, gdy to jest ostatnie okno ramki przedstawienie dokumentu.Zamknięcie dokumentu z ID_FILE_CLOSE nie zamknie tylko dokument, ale będzie zamknąć wszystkie okna ramki wyświetlono dokumentu.
ID_FILE_SAVE zapisuje bieżący dokument.
W realizacji zastosowano rutynowych Pomocnika CDocument::DoSave używaną dla obu OnFileSave i OnFileSaveAs.Jeśli zapiszesz dokument, który nie został zapisany przed (to znaczy, że nie ma nazwę ścieżki, jak w przypadku nowy plik) lub która została przeczytana z dokumentu tylko do odczytu, OnFileSave logic będzie działać jak ID_FILE_SAVE_AS polecenia i poproś użytkownika o podanie nowej nazwy pliku.Rzeczywisty proces otwierania pliku i zapisywanie robi odbywa się za pośrednictwem funkcji wirtualnych OnSaveDocument.
Istnieją dwie typowe przyczyny, aby dostosować ID_FILE_SAVE.Dokumenty, które nie zostaną zapisane, po prostu usunąć ID_FILE_SAVE elementy menu i przycisków paska narzędzi od interfejsu użytkownika.Należy upewnić się, nigdy nie dirty dokumentu (czyli nigdy nie wywołać CDocument::SetModifiedFlag) i w ramach nigdy nie spowoduje zapisanie dokumentu.W przypadku dokumentów, które zapisać gdzieś w innych niż pliku na dysku należy zdefiniować nowe polecenie dla danej operacji.
W odniesieniu do COleServerDoc, ID_FILE_SAVE jest używany zarówno dla pliku Zapisz (w przypadku normalnego dokumenty) i plik aktualizacji (dla osadzonych dokumentów).
Jeśli dane dokumentu są przechowywane w plikach na dysku indywidualnych, ale nie chcesz użyć domyślnego CDocument serializować wdrażania, należy zastąpić CDocument::OnSaveDocument zamiast OnFileSave.
ID_FILE_SAVE_AS zapisuje bieżący dokument pod inną nazwą pliku.
CDocument::OnFileSaveAs wykonania używa tego samego CDocument::DoSave rutynowych pomocnika jako OnFileSave.OnFileSaveAs polecenia jest obsługiwana tylko jako ID_FILE_SAVE gdyby dokumentów bez nazwy pliku, przed zapisywania.COleServerDoc::OnFileSaveAs implementuje logiki do zapisania pliku danych normalnego dokumentu lub zapisania dokumentu serwera reprezentujących obiekt OLE osadzonych w innej aplikacji w oddzielnym pliku.
W przypadku dostosowania logiki ID_FILE_SAVE, prawdopodobnie chcesz dostosować ID_FILE_SAVE_AS w podobny sposób lub działania "Zapisz jako" nie mogą stosować do dokumentu.Jeśli nie jest potrzebna, można usunąć element menu z paska menu.
ID_FILE_SAVE_COPY_AS zapisuje kopię bieżącego dokumentu pod nową nazwą.
COleServerDoc::OnFileSaveCopyAs implementacja jest bardzo podobny do CDocument::OnFileSaveAs, z tym wyjątkiem, że obiektu dokumentu nie jest "dołączony" do podstawowego pliku po Zapisz.Oznacza to, że jeśli w pamięci "modyfikacji dokumentu" przed zapisywania, jest on nadal "zmodyfikowany".Ponadto to polecenie nie ma wpływu na nazwę ścieżki lub tytułu przechowywane w dokumencie.
ID_FILE_UPDATE powiadamia kontener, aby zapisać dokument osadzony.
COleServerDoc::OnUpdateDocument Realizacji notifiies po prostu kontener, w którym powinny być zapisywane osadzenie.Kontener następnie wywołuje odpowiednie OLE interfejsów API w celu zapisać obiekt osadzony.
ID_FILE_PAGE_SETUP wywołuje okno dialogowe instalacji/układ strony aplikacji.
Obecnie nie istnieje standard dla tego okna dialogowego, a ramach ma nie Domyślna implementacja tego polecenia.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_FILE_PRINT_SETUP wywołać standardowe okno Ustawienia wydruku.
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
Polecenie to pozwala wywołać okno dialogowe standardowe ustawienia drukowania, która pozwala użytkownikowi na dostosowywanie drukarki i ustawienia wydruku dla co najmniej tego dokumentu lub co najwyżej wszystkie dokumenty w tej aplikacji.Aby zmienić domyślne ustawienia drukarki dla całego systemu, należy użyć Panelu sterowania.
CWinApp::OnFilePrintSetupma bardzo proste wdrożenie tworzenia CPrintDialog obiektu i telefonicznej CWinApp::DoPrintDialog wykonania funkcja.Ustawia ustawienia drukarki domyślnej aplikacji.
Same potrzeby dotyczące dostosowywania tego polecenia jest umożliwienie dla ustawień drukarki dla dokumentu, które powinny być przechowywane przy podczas zapisywania dokumentu.W tym celu należy dodać obsługi wiadomości mapę w swojej CDocument klasy, która tworzy CPrintDialog obiekt, inicjuje on z atrybutami odpowiednią drukarkę (zazwyczaj pole hDevMode i hDevNames), call CPrintDialog::DoModal, i zapisać ustawienia drukarki zmienionych.Solidne implementacji, należy spojrzeć na realizacji CWinApp::DoPrintDialog do wykrywania błędów i CWinApp::UpdatePrinterSelection dla zajmujących się rozsądne wartości domyślne i śledzenie zmian drukarki całego systemu.
ID_FILE_PRINT standardowe drukowanie bieżącego dokumentu
[!UWAGA]
Należy tutaj, aby połączyć swoje CView-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
To polecenie drukuje bieżący dokument lub bardziej poprawnie, rozpoczyna się proces drukowania, które obejmuje powołując się standardowe okno dialogowe drukowania i pracującym silniku wydruku.
CView::OnFilePrint implementuje to polecenie i główna pętla wydruku.Wywołuje wirtualnego CView::OnPreparePrinting monit użytkownika z okna dialogowego drukowania.Go następnie przygotowuje Wyjście prądu stałego do podejdź do drukarki, wyświetla okno dialogowe drukowania postępu (AFX_IDD_PRINTDLG), a następnie wysyła StartDoc ewakuacji do drukarki.CView::OnFilePrint zawiera także zorientowane na stronie wydruku pętli głównej.Dla każdej strony wirtualnego wywołuje CView::OnPrepareDC następuje StartPage escape i wywoływania wirtualnego CView::OnPrint dla tej strony.Po ukoñczeniu, wirtualnego CView::OnEndPrinting jest wywoływana, i drukowania okno dialogowe postępu jest zamknięty.
Architektura drukowania MFC jest przeznaczony do hak na wiele różnych sposobów do podglądu wydruku i drukowania.Zwykle znajdują się różne CView funkcje NotOverridable odpowiednie dla wszystkich zadań drukowania podziału na strony.Tylko w przypadku aplikacji korzystającej z drukarki dla innych niż strona zorientowane na dane wyjściowe, należy znaleźć konieczność wymiany ID_FILE_PRINT wykonania.
Wprowadź ID_FILE_PRINT_PREVIEW tryb podglądu wydruku dla bieżącego dokumentu.
[!UWAGA]
Należy tutaj, aby połączyć swoje CView-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
CView::OnFilePrintPreview rozpoczyna się w trybie podglądu wydruku przez wywołanie funkcji pomocnika udokumentowane CView::DoPrintPreview.CView::DoPrintPreview jest silnik główny dla pętli podglądu wydruku tak samo OnFilePrint jest główny silnik drukowania pętli for.
Operacji podglądu wydruku można dostosować na wiele sposobów przekazując różne parametry do DoPrintPreview.Można znaleźć w technicznej 30 Uwaga, który w tym artykule omówiono niektóre szczegóły podglądu wydruku i jak go dostosować.
ID_FILE_MRU_FILE1... FILE16 zakres identyfikatorów poleceń dla MRU pliku list.
CWinApp::OnUpdateRecentFileMenu jest obsługa interfejsu użytkownika polecenie aktualizacji, który jest jednym z bardziej zaawansowanych zastosowań ON_UPDATE_COMMAND_UI mechanizmu.W menu zasób, potrzebujesz tylko zdefiniować pojedynczy element menu o identyfikatorze ID_FILE_MRU_FILE1.Ten element menu pozostaje początkowo wyłączony.
Jako MRU lista rozrasta się, więcej menu, które elementy zostaną dodane do listy.Standard CWinApp wykonania domyślnie standardowy limit czterech ostatnio używanych plików.Domyślne można zmienić przez wywołanie CWinApp::LoadStdProfileSettings o wartości większe lub mniejsze.Lista ostatnio używanych elementów jest przechowywana w aplikacji.Plik INI.Lista jest ładowany do aplikacji InitInstance działać, jeśli zadzwonisz LoadStdProfileSettingsi jest zapisywany w czasie zamykania aplikacji.Mechanizm obsługi interfejsu użytkownika MRU aktualizacja polecenia również przekonwertuje ścieżki bezwzględne ścieżki względne do wyświetlenia w menu Plik.
CWinApp::OnOpenRecentFile jest ON_COMMAND obsługi, które wykonuje rzeczywiste polecenia.Po prostu pobiera nazwę pliku z listy ostatnio używanych elementów i połączeń CWinApp::OpenDocumentFile, który wykonuje całą pracę otwierania pliku i aktualizowanie listy ostatnio używanych elementów.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_EDIT_CLEAR czyści bieżące zaznaczenie
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację tego przy użyciu polecenia CEdit::Clear.Polecenie jest niedostępne, jeśli nie ma żadnego bieżącego zaznaczenia.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_CLEAR_ALL czyści cały dokument.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.Zobacz przykładowy samouczek MFC BAZGROŁY z przykładem implementacji.
ID_EDIT_COPY kopiuje bieżące zaznaczenie do Schowka.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację tego polecenia kopiuje zaznaczony tekst do Schowka w postaci CF_TEXT za pomocą CEdit::Copy.Polecenie jest niedostępne, jeśli nie ma żadnego bieżącego zaznaczenia.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_CUT Wycina bieżące zaznaczenie do Schowka.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację tego polecenia, które Wycina zaznaczony tekst do Schowka w postaci CF_TEXT za pomocą CEdit::Cut.Polecenie jest niedostępne, jeśli nie ma żadnego bieżącego zaznaczenia.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_FIND rozpoczyna się operacja znajdowania pojawi się okno dialogowe znajdowania niemodalny.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację tego polecenia, który wywołuje funkcję Pomocnik wykonania OnEditFindReplace i poprzednie ustawienia Znajdź/Zamień są przechowywane w zmiennych prywatnych implementacji.CFindReplaceDialog Klasa jest używana do zarządzania okno niemodalne monitowania użytkownika.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_PASTE Wstawia bieżącą zawartość Schowka.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację tego polecenia kopiuje bieżące dane Schowka zastępowanie zaznaczonego tekstu, za pomocą CEdit::Paste.Polecenie jest wyłączone, jeśli ma nie CF_TEXT w Schowku.
COleClientDoc tylko zapewnia mechanizm obsługi interfejsu użytkownika dla polecenia w aktualizacji dla tego polecenia.Jeśli Schowek nie zawiera zabudowany element/obiekt OLE, polecenie zostanie wyłączony.Ponosisz odpowiedzialność za napisanie programu obsługi polecenia rzeczywiste robić rzeczywiste wklejanie.Jeśli aplikacja OLE można również wkleić inne formaty, powinny zapewnić własne aktualizacja polecenia mechanizm obsługi interfejsu użytkownika w widoku lub w dokumencie (czyli gdzieś przed COleClientDoc w marszrucie docelowej polecenia).
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
Zamiany implementacji standardu OLE, użyj COleClientItem::CanPaste.
ID_EDIT_PASTE_LINK wstawia łącze z bieżącą zawartość Schowka.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
COleDocumenttylko zapewnia mechanizm obsługi interfejsu użytkownika dla polecenia w aktualizacji dla tego polecenia.Jeśli Schowek nie zawiera skorelowane OLE elementu obiektu, polecenie zostanie wyłączony.Ponosisz odpowiedzialność za napisanie programu obsługi polecenia rzeczywiste robić rzeczywiste wklejanie.Jeśli aplikacja OLE można również wkleić inne formaty, powinny zapewnić własne aktualizacja polecenia mechanizm obsługi interfejsu użytkownika w widoku lub w dokumencie (czyli gdzieś przed COleDocument w marszrucie docelowej polecenia).
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
Zamiany implementacji standardu OLE, użyj COleClientItem::CanPasteLink.
ID_EDIT_PASTE_SPECIAL Wstawia bieżącą zawartość Schowka z opcjami.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.MFC nie zapewnia tego okna dialogowego.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_REPEAT powtarza ostatnią operację.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację to polecenie, aby powtórzyć ostatnią operację Znajdź.Są używane zmienne prywatne implementacji dla ostatnie wyszukiwanie.Polecenie jest wyłączona, jeśli nie może być próba znajdowania.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_REPLACE rozpoczyna się operacji zamiany, pojawi się okno dialogowe Zastąp niemodalny.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację tego polecenia, który wywołuje funkcję Pomocnik wykonania OnEditFindReplace i poprzednie ustawienia Znajdź/Zamień są przechowywane w zmiennych prywatnych implementacji.CFindReplaceDialog Klasa jest używana do zarządzania niemodalne okno dialogowe, które monituje użytkownika.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_SELECT_ALL zaznacza cały dokument.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewstanowi implementację tego polecenia powoduje zaznaczenie całego tekstu w dokumencie.Jeśli nie ma żadnego tekstu, wybierz polecenie jest wyłączona.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_UNDO Cofa ostatnią operację.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
CEditViewdostarcza implementację tego polecenia, za pomocą CEdit::Undo.Polecenie jest wyłączone, jeśli CEdit::CanUndo zwraca wartość FALSE.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_EDIT_REDO wykonuje ponownie ostatnią operację.
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Należy zaimplementować to dla każdego CView-klasy.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
ID_WINDOW_NEW Otwiera inne okno aktywnego dokumentu.
CMDIFrameWnd::OnWindowNew implementuje tej zaawansowanej funkcji przy użyciu szablonu dokumentu bieżącego dokumentu, aby utworzyć kolejną ramkę zawierającą innego widoku bieżącego dokumentu.
Podobnie jak większość wielu dokument interfejsu (MDI) okno poleceń menu polecenie jest wyłączona, jeśli nie ma żadnych aktywnego okna podrzędnego MDI.
Dostosowania tej obsługi polecenia nie jest zalecane.Jeśli chcesz podać polecenia, które tworzy dodatkowe widoki lub ramka okna, prawdopodobnie będzie lepiej wymyślić własne polecenia.Można sklonować kod z CMDIFrameWnd::OnWindowNew i zmodyfikować go do specyficznych klas ramki i widoku z własnymi upodobaniami.
ID_WINDOW_ARRANGE Rozmieszcza ikony u dołu okna MDI.
CMDIFrameWndimplementuje standard polecenie MDI w realizacji funkcji pomocnika OnMDIWindowCmd.Ten pomocnik mapuje identyfikatory poleceń okna MDI wiadomości i dlatego można udostępniać dużo kodu.
Podobnie jak większość poleceń menu okna MDI polecenie jest wyłączona, jeśli nie ma żadnych aktywnego okna podrzędnego MDI.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_WINDOW_CASCADE kaskady windows tak, aby nakładały.
CMDIFrameWndimplementuje standard polecenie MDI w realizacji funkcji pomocnika OnMDIWindowCmd.Ten pomocnik mapuje identyfikatory poleceń okna MDI wiadomości i dlatego można udostępniać dużo kodu.
Podobnie jak większość poleceń menu okna MDI polecenie jest wyłączona, jeśli nie ma żadnych aktywnego okna podrzędnego MDI.
Dostosowania tej obsługi polecenia nie jest zalecane.
Windows ID_WINDOW_TILE_HORZ płytki poziomo.
To polecenie jest zaimplementowana w CMDIFrameWnd jak ID_WINDOW_CASCADE, z wyjątkiem operacji jest używany inny komunikat okna MDI.
Należy wybrać domyślną orientację tabliczki aplikacji.Można to zrobić przez zmianę Identyfikatora elementu menu Okno "Sąsiadująco" albo ID_WINDOW_TILE_HORZ lub ID_WINDOW_TILE_VERT.
Windows ID_WINDOW_TILE_VERT płytek pionowo.
To polecenie jest zaimplementowana w CMDIFrameWnd jak ID_WINDOW_CASCADE, z wyjątkiem operacji jest używany inny komunikat okna MDI.
Należy wybrać domyślną orientację tabliczki aplikacji.Można to zrobić przez zmianę Identyfikatora elementu menu Okno "Sąsiadująco" albo ID_WINDOW_TILE_HORZ lub ID_WINDOW_TILE_VERT.
Interfejs ID_WINDOW_SPLIT klawiatury do rozdzielacza.
CViewobsługuje to polecenie dla CSplitterWnd wykonania.Jeżeli widok jest częścią okna rozdzielacza, to polecenie zostanie delegować do wykonania funkcja CSplitterWnd::DoKeyboardSplit.Spowoduje to umieszczenie rozdzielacza w trybie, który pozwoli użytkownikom klawiatury dzielić lub unsplit podziału okna.
To polecenie jest niedostępne, jeśli widok nie jest rozdzielacza.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_APP_ABOUT wywołuje okno dialogowe informacje.
Nie ma standardowej implementacji aplikacji o pole.Domyślna aplikacja utworzona AppWizard będzie utworzenie klasy niestandardowe okno aplikacji i używać go jako pole o.AppWizard będzie także napisać program obsługi poleceń trivial, która obsługuje to polecenie, a następnie wywołuje okno dialogowe.
Prawie zawsze będzie wykonywał tego polecenia.
ID_APP_EXIT Zamknij aplikację.
CWinApp::OnAppExit obsługuje przez wysłanie tego polecenia WM_CLOSE wiadomość do głównego okna aplikacji.Standard zamykanie aplikacji (monitowanie dla plików dirty i tak dalej) jest obsługiwane przez CFrameWnd wykonania.
Dostosowania tej obsługi polecenia nie jest zalecane.Przesłanianie CWinApp::SaveAllModified lub CFrameWnd zaleca się zamknięcie logiki.
Jeśli zostanie wybrana opcja wykonania tego polecenia, zaleca się używać tego identyfikatora polecenia.
Tematy Pomocy zawiera listę ID_HELP_INDEX, z.Pliku HLP.
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
CWinApp::OnHelpIndexto polecenie obsługuje banalnie wywołując CWinApp::WinHelp.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_HELP_USING Wyświetla Pomoc na temat korzystania z pomocy.
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
CWinApp::OnHelpUsingto polecenie obsługuje banalnie wywołując CWinApp::WinHelp.
Dostosowania tej obsługi polecenia nie jest zalecane.
Tryb pomocy ID_CONTEXT_HELP wchodzi SHIFT-F1.
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
CWinApp::OnContextHelpto polecenie obsługuje ustawienie trybu kursor pomocy, wprowadzając pętli modalnej i czekać na użytkownika wybrać okno, aby uzyskać pomoc na temat.Można znaleźć w techniczne Uwaga 28 więcej informacji na temat wdrażania pomocy MFC.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_HELP zapewnia pomoc na temat bieżącego kontekstu
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
CWinApp::OnHelpUzyskiwanie kontekstu właściwą pomoc dla bieżącego kontekstu aplikacja obsługuje tego polecenia.Ten obsługuje prosty pomocy F1, pomoc na temat okien komunikatów i tak dalej.Można znaleźć w techniczne Uwaga 28 więcej informacji na temat MFC wykonania pomocy.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_DEFAULT_HELP Wyświetla Pomoc domyślna dla kontekstu
[!UWAGA]
Należy tutaj, aby połączyć swoje CWinApp-pochodnych klasy wiadomości mapę, aby włączyć tę funkcję.
Polecenie to jest zazwyczaj mapowany do CWinApp::OnHelpIndex.
Obsługa różne polecenia dostępne są w razie potrzeby rozróżnienie między domyślna Pomoc i indeks pomocy.
ID_NEXT_PANE przechodzi do następnego okienka
CViewobsługuje to polecenie dla CSplitterWnd wykonania.Jeżeli widok jest częścią okna rozdzielacza, to polecenie zostanie delegować do wykonania funkcja CSplitterWnd::OnNextPaneCmd.Spowoduje to przeniesienie widoku aktywnego do następnego okienka w rozdzielacza.
To polecenie jest niedostępne, jeśli widok nie jest rozdzielacza lub nie ma żadnych następnego okienka, aby przejść do.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_PREV_PANE przechodzi do poprzedniego okienka
CViewobsługuje to polecenie dla CSplitterWnd wykonania.Jeżeli widok jest częścią okna rozdzielacza, to polecenie zostanie delegować do wykonania funkcja CSplitterWnd::OnNextPaneCmd.Spowoduje to przeniesienie aktywnego widoku do poprzedniego okienka w rozdzielacza.
To polecenie jest niedostępne, jeśli widok nie jest rozdzielacza lub nie ma żadnych poprzedniego okienka, aby przejść do.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_OLE_INSERT_NEW Wstawia nowy obiekt OLE
Obecnie nie jest Brak implementacji standardu dla tego polecenia.Ten formularz należy zaimplementować Twój CView-klasy, aby wstawić nowy element/obiektu OLE na bieżące zaznaczenie.
Wszystkie aplikacje klienta OLE powinny wprowadzać w życie tego polecenia.AppWizard, z opcją OLE spowoduje utworzenie szkielet implementacji z OnInsertObject w klasie widok, który trzeba będzie wykonać.
Zobacz przykładowy MFC OLE OCLIENT przykład pełna implementacja tego polecenia.
ID_OLE_EDIT_LINKS umożliwia edytowanie połączenia OLE
COleDocumentto polecenie obsługuje przy użyciu biblioteki MFC-pod warunkiem wykonania standardowe okno dialogowe łącza OLE.Wdrożenie tego okna dialogowego jest dostępna za pośrednictwem COleLinksDialog klasy.Jeśli bieżący dokument nie zawiera żadnych łączy, polecenie jest wyłączone.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_OLE_VERB_FIRST...OSTATNI zakres Identyfikatora dla zleceń OLE
COleDocumentużywa tego polecenia identyfikator zakresu zlecenia obsługiwane przez aktualnie wybrany element/obiekt OLE.Musi to być zakres, ponieważ danego typu elementu/obiekt OLE może obsługiwać zero lub więcej niestandardowych czasowników.W menu aplikacji powinny mieć jeden element menu z Identyfikatorem ID_OLE_VERB_FIRST.Po uruchomieniu programu zostaną zaktualizowane menu z menu odpowiednie zlecenie opis (lub menu podręczne z wielu zleceń).Zarządzanie OLE menu jest obsługiwany przez AfxOleSetEditMenu, wykonane w mechanizm obsługi interfejsu użytkownika polecenie aktualizacji dla tego polecenia.
Nie ma żadnych programów obsługi wyraźne polecenie obsługi każdy identyfikator polecenia w tym zakresie.COleDocument::OnCmdMsg jest zastąpiona przez pułapki wszystkie identyfikatory poleceń w tym zakresie, przekształcić je w numery od zera zlecenie i uruchomić serwer dla tego zlecenia (za pomocą COleClientItem::DoVerb).
Dostosowywanie lub innego wykorzystania tego zakresu identyfikator polecenia nie jest zalecane.
ID_VIEW_TOOLBAR Przełącza pasek narzędzi i wyłączanie
CFrameWndzajmuje to polecenie i mechanizm obsługi interfejsu użytkownika polecenia update przełącza wyświetlany stan paska narzędzi.Paska narzędzi musi być ramki okna podrzędnego o identyfikatorze okno dziecko AFX_IDW_TOOLBAR.Program obsługi poleceń faktycznie Wyświetla/ukrywa pasek narzędzi okna.CFrameWnd::RecalcLayoutSłuży do ponownego w stanie nowy ramka okna za pomocą paska narzędzi.Mechanizm obsługi interfejsu użytkownika polecenia update sprawdza elementu menu, gdy pasek narzędzi jest widoczny.
Dostosowania tej obsługi polecenia nie jest zalecane.Jeśli chcesz dodać dodatkowe paski narzędzi, można powielać i modyfikować program obsługi poleceń oraz mechanizm obsługi interfejsu użytkownika polecenie aktualizacji dla tego polecenia.
ID_VIEW_STATUS_BAR Włącza/wyłącza pasek stanu i wyłączanie
To polecenie jest zaimplementowana w CFrameWnd tak jak ID_VIEW_TOOLBAR, z wyjątkiem ID okna podrzędne różnych (AFX_IDW_STATUS_BAR) jest używany.
Programy obsługi polecenia tylko do aktualizacji
Kilka identyfikatorów standardowego polecenia są używane jako wskaźniki w paski stanu.One korzystać z tego samego mechanizmu obsługi interfejsu użytkownika polecenie aktualizacji do wyświetlania ich bieżącym stanie wizualnej podczas bezczynności aplikacji.Ponieważ nie mogą być wybrane przez użytkownika (to znaczy nie może wypchnąć okienka pasek stanu), a następnie nie ma sensu mieć ON_COMMAND obsługi dla tych identyfikatorów poleceń.
ID_INDICATOR_CAPS : wskaźnik blokady CAP.
ID_INDICATOR_NUM : NUM lock wskaźnika.
ID_INDICATOR_SCRL : SCRL wskaźnik blokady.
ID_INDICATOR_KANA : wskaźnik blokady KANA (dotyczy tylko systemów japoński).
Wszystkie trzy z nich są implementowane w CFrameWnd::OnUpdateKeyIndicator, pomocnika wykonania, który używa Identyfikatora polecenia mapować do właściwego klucza wirtualnego.Wdrożenie wspólnej Włącza lub wyłącza (dla okienka stanu wyłączone = Brak tekstu) CCmdUI obiektu w zależności od tego, czy odpowiedni klawisz wirtualny jest obecnie zablokowany.
Dostosowania tej obsługi polecenia nie jest zalecane.
ID_INDICATOR_EXT: Rozzakończył wybór wskaźnika.
ID_INDICATOR_OVR: OVeRstrike wskaźnika.
ID_INDICATOR_REC: RECording wskaźnika.
Obecnie nie jest standardowej implementacji tych wskaźników.
Jeśli zostanie wybrana opcja wykonania tych wskaźników, zaleca się użyć tych identyfikatorów wskaźnika i utrzymywanie zamawiania wskaźników na pasku stanu (czyli w następującej kolejności: EXT WPR, NUM, SCRL, zas, REC).