Sdílet prostřednictvím


TN022: Implementace standardních příkazů

[!POZNÁMKA]

Následující technická poznámka nebyla aktualizována, protože byla poprvé zahrnuta v dokumentaci online.V důsledku toho některé postupy a témata mohou být nesprávné nebo zastaralé.Pro nejnovější informace je vhodné vyhledat téma zájmu v dokumentaci online index.

Tato poznámka popisuje standardní příkaz implementace poskytované 2.0 knihovny MFC.Čtení Technická poznámka: 21 první protože popisují mechanismy, které slouží k implementaci mnoha standardních příkazů.

Tento popis předpokládá znalost architektury knihovny MFC, API a běžná praxe v programování.Dokumentované, jakož i nezdokumentovaný "provádění pouze" rozhraní API jsou popsány.Toto není místo pro začátek učení o funkce nebo programování v knihovně MFC.Další obecné informace a podrobnosti o dokumentované API naleznete Visual C++.

Problém

MFC definuje mnoho standardní příkaz identifikátorů v záhlaví souboru AFXRES.H.Rámec podpory pro tyto příkazy se liší.Vysvětlení, kde a jak rámci třídy zpracovat tyto příkazy pouze neukáže jak rozhraní framework interně pracuje, ale poskytuje užitečné informace týkající se přizpůsobení standardních implementací a naučí vás několik technik pro provádění vlastní příkaz obslužné rutiny.

Obsah této technické poznámky

ID každého příkazu je popsán ve dvou částech:

  • Titul: symbolické název ID příkazu (například ID_FILE_SAVE) následovaný účel příkazu (například "uloží aktuální dokument"), oddělené dvojtečkou.

  • Jeden nebo více odstavců, které třídy s popisem provedení příkazu, a co výchozí implementace

Většina implementací výchozí příkaz jsou v mapě zpráva rozhraní framework základní třídy prewired.Existují některé implementace příkazu, které vyžadují explicitní zapojení v odvozené třídě.Jsou popsány v části "Poznámky".Pokud jste vybrali správné možnosti v AppWizard, budou připojeny tyto výchozí obslužné rutiny pro vás v generované kostru aplikace.

Konvence vytváření názvů

Standardní příkazy podle jednoduché pojmenování, která doporučujeme že je použít, pokud je to možné.Většinu standardních příkazů jsou umístěny v místech standardní v panelu nabídek dané aplikace.Symbolický název příkazu, začíná "ID_" následuje název standardní rozbalovací nabídky, následuje název položky nabídky.Symbolický název je velká s podtržítkem-rozdělení slov.Příkazy, které nemají standardní nabídce názvy položek, je definován název logický příkazu začínající "ID_" (například ID_NEXT_PANE).

Používáme předpony "ID_" označují příkazy, které jsou určeny pro položky nabídky, tlačítka panelu nástrojů nebo jiných objektů uživatelského rozhraní příkaz vázat.Použijte příkaz obslužné rutiny zpracování příkazů "ID_" ON_COMMAND a ON_UPDATE_COMMAND_UI příkaz mechanismy knihovny MFC architekturu.

Doporučujeme že použít standardní "IDM_" prefix pro položky nabídky, která není proveďte příkaz architektury a potřebujete kód specifický pro nabídky Povolit a zakázat.Počet zvláštních příkazů nabídky samozřejmě by měly být stručné, od následujícího příkazu MFC architekturu nejen provede příkaz obslužné rutiny výkonnější (vzhledem k tomu, že bude práce s panely nástrojů), ale díky opakovaně použitelný kód pro obslužnou rutinu příkaz.

ID oblasti

Najdete na Technická poznámka: 20 Další informace o použití rozsahů ID v knihovně MFC.

Standardní příkazy knihovny MFC spadají v rozsahu od 0xE000 do 0xEFFF.Prosím nespoléhejte na konkrétní hodnoty těchto ID protože může změnit v budoucích verzích knihovny.

Aplikace by měla definovat příkazy v rozsahu 0x8000-0xDFFF.

Standardní příkaz identifikátorů

Pro každé ID příkazu je standardní zprávy řádek příkazový řádek řetězec, který lze nalézt v souboru pokynů.RC.ID řetězce pro zobrazení této výzvy nabídky musí být stejný jako identifikátor příkazu.

  • ID_FILE_NEW vytvoří nový/prázdný dokument.

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    CWinApp::OnFileNewimplementuje tento příkaz se liší v závislosti na počtu šablon dokumentu v aplikaci.Pokud existuje pouze jeden CDocTemplate, CWinApp::OnFileNew vytvoří nový dokument tohoto typu, jakož i řádné snímků a zobrazení třídy.

    Pokud existuje více než jeden CDocTemplate, CWinApp::OnFileNew vyzve uživatele dialogové okno (AFX_IDD_NEWTYPEDLG) dát vyberte typ dokumentu.Vybrané CDocTemplate se používá k vytvoření dokumentu.

    Přizpůsobení jedné společné ID_FILE_NEW je poskytnout jinou a další grafické volby typů dokumentů.V takovém případě můžete implementovat vlastní CMyApp::OnFileNew a umístit do mapy zprávy namísto CWinApp::OnFileNew.Není nutné volat základní třídy implementace.

    Jiné běžné úpravy ID_FILE_NEW je poskytnout samostatný příkaz pro vytvoření každého typu dokumentu.V tomto případě je třeba definovat nový příkaz identifikátorů, například ID_FILE_NEW_CHART a ID_FILE_NEW_SHEET.

  • ID_FILE_OPEN otevře existující dokument.

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    CWinApp::OnFileOpenmá velmi jednoduché provedení volání CWinApp::DoPromptFileName a CWinApp::OpenDocumentFile s název souboru nebo cesty k otevření souboru.CWinApp Provádění rutinních DoPromptFileName zobrazí standardní dialogové okno FileOpen a vyplní s příponami souborů, které jsou získány z aktuální šablony dokumentu.

    Přizpůsobení jedné společné ID_FILE_OPEN má vlastní dialogové okno FileOpen nebo přidejte další filtry souborů.Doporučeným způsobem, jak přizpůsobit to má nahradit vlastní dialogové okno FileOpen a volání výchozí implementace CWinApp::OpenDocumentFile s název souboru nebo cesty v dokumentu.Není nutné volat základní třídy.

  • ID_FILE_CLOSE zavře otevřený dokument.

    CDocument::OnFileClose volání CDocument::SaveModified na výzvu k uložení dokumentu, pokud byl změněn a pak zavolá OnCloseDocument.Všechny uzavírací logiku včetně zničení dokumentu, se provádí v OnCloseDocument rutina.

    [!POZNÁMKA]

    ID_FILE_CLOSE pracuje odlišně od WM_CLOSE zpráva nebo SC_CLOSE systém povel rámeček okna dokumentů.Zavřením okna bude pouze v případě, že je poslední okno zobrazení dokumentu zavřete dokument.Zavřením dokumentu s ID_FILE_CLOSE nebude pouze zavřete dokument, ale bude zavřít všechna okna rámeček zobrazení dokumentu.

  • ID_FILE_SAVE uloží aktuální dokument.

    Provádění používá pomocnou rutinou CDocument::DoSave který je použit pro obě OnFileSave a OnFileSaveAs.Pokud uložíte dokument, který nebyl uložen před (to znamená, že nemá název cesty, jako v případě funkci FileNew) nebo byl čten dokumentu jen pro čtení, OnFileSave logiky budou fungovat stejně jako ID_FILE_SAVE_AS příkaz a vyzve uživatele k zadání názvu nového souboru.Samotný proces otevírání souboru a tím ukládání je realizováno prostřednictvím virtuální funkce OnSaveDocument.

    Existují dva běžné důvody k přizpůsobení ID_FILE_SAVE.Dokumenty, které nejsou ukládány, stačí odebrat ID_FILE_SAVE položky nabídky a tlačítka panelu nástrojů z uživatelského rozhraní.Ověřte také nikdy dirty dokumentu (to znamená nikdy volat CDocument::SetModifiedFlag) a rámci nikdy způsobí, že dokument, který chcete uložit.Pro dokumenty, které je uložit do souboru na disku, než je jistě definovat nový příkaz pro danou operaci.

    U COleServerDoc, ID_FILE_SAVE se používá pro uložení souboru (pro běžné dokumenty) i soubor aktualizace (pro vložené dokumenty).

    Pokud data dokumentu je uložena v souborech jednotlivých disků, ale nechcete použít výchozí CDocument serializovat provedení, měli byste přepsat CDocument::OnSaveDocument místo OnFileSave.

  • ID_FILE_SAVE_AS uloží aktuální dokument pod jiným názvem souboru.

    CDocument::OnFileSaveAs implementace používá stejné CDocument::DoSave pomocnou rutinou jako OnFileSave.OnFileSaveAs příkaz je zpracován stejně jako ID_FILE_SAVE -li žádný název souboru před uložením dokumentů.COleServerDoc::OnFileSaveAs implementuje logiku uložit datový soubor normální dokument nebo uložit dokument na serveru představující objekt OLE vložený do jiné aplikace jako samostatný soubor.

    Pokud vlastní logiky ID_FILE_SAVE, budete pravděpodobně chtít upravit ID_FILE_SAVE_AS v podobně nebo fungování "Uložit jako" nemusí vztahovat k dokumentu.Položky nabídky můžete odebrat panel nabídek, pokud není nutné.

  • ID_FILE_SAVE_COPY_AS uloží kopii aktuálního dokumentu pod novým názvem.

    COleServerDoc::OnFileSaveCopyAs je velmi podobný CDocument::OnFileSaveAs, s tím rozdílem, že objekt dokumentu není "připojen" základní soubor po uložení.To znamená je-li v paměti "změny dokumentu" před uložením, stále "úpravě".Kromě toho tento příkaz nemá žádný vliv na název cesty nebo název uložen v dokumentu.

  • ID_FILE_UPDATE uvědomí kontejner na vložený dokument uložit.

    COleServerDoc::OnUpdateDocument Provádění jednoduše notifiies kontejneru, který má být uložen vkládání.Kontejner pak zavolá rozhraní odpovídající OLE API za účelem uložení vloženého objektu.

  • ID_FILE_PAGE_SETUP vyvolá dialogové okno nastavení a rozložení stránky specifické pro aplikaci.

    V současnosti je standard pro toto dialogové okno a rámci nemá žádnou výchozí implementaci tohoto příkazu.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_FILE_PRINT_SETUP vyvolat standardního dialogového okna Nastavení tisku.

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    Tento příkaz vyvolá dialogové okno Standardní nastavení tisku, které umožňuje uživateli upravit tiskárnu a nastavení tisku pro alespoň tento dokument nebo nanejvýš všechny dokumenty v této aplikaci.Chcete-li změnit výchozí nastavení tiskárny pro celý systém musí použít ovládací panely.

    CWinApp::OnFilePrintSetupmá velmi jednoduché provedení vytváření CPrintDialog objektu a volání CWinApp::DoPrintDialog implementace funkce.Tím nastavíte výchozí nastavení tiskárny aplikace.

    Společnou potřebu úpravy tohoto příkazu je umožnit nastavení tiskárny dokumentů, které by měly být uloženy s dokumentem při uložení.K tomu měli přidat popisovač zprávy mapy v vaše CDocument třídy, která vytvoří CPrintDialog objekt, inicializuje ji pomocí atributů příslušné tiskárny (obvykle hDevMode a hDevNames je), volat CPrintDialog::DoModal, a uložit nastavení změněných tiskárny.Robustní provedení, měli byste se podívat na provádění CWinApp::DoPrintDialog pro zjištění chyb a CWinApp::UpdatePrinterSelection zabývající se rozumný výchozí nastavení a sledování změn systémové tiskárny.

  • ID_FILE_PRINT standardní tisk aktuálního dokumentu

    [!POZNÁMKA]

    Je třeba připojit k vaší CView-odvozené třídy mapu zpráv pro povolení této funkce.

    Tento příkaz vytiskne aktuální dokument, nebo přesněji, spustí proces tisku, které zahrnuje standardní tiskové dialogové okno pro vyvolání a spuštění tiskové stroje.

    CView::OnFilePrint implementuje tento příkaz a hlavní smyčky tisku.Volá virtuální CView::OnPreparePrinting na výzvu uživatele pomocí dialogového okna Tisk.Poté připraví výstup DC do tiskárny, zobrazí dialogové okno Tisk průběhu (AFX_IDD_PRINTDLG) a odešle StartDoc escape tiskárny.CView::OnFilePrint také obsahuje hlavní stránkové tisku smyčky.Pro každou stránku volá virtuální CView::OnPrepareDC následuje StartPage escape a volání virtuální CView::OnPrint na této stránce.Po dokončení, virtuální CView::OnEndPrinting se nazývá a tiskové dialogové okno Průběh je uzavřen.

    Architektura pro tisk MFC je určen k zapojení mnoha různými způsoby pro náhled tisku a tisk.Obvykle najdete různé CView overridable funkce pro všechny tiskové úlohy zaměřené na stránku.Pouze v případě aplikace, která používá tiskárnu pro non stránky zaměřené na výstupu by měla najít nutnost nahradit ID_FILE_PRINT provedení.

  • ID_FILE_PRINT_PREVIEW zadat režim náhledu pro aktuální dokument.

    [!POZNÁMKA]

    Je třeba připojit k vaší CView-odvozené třídy mapu zpráv pro povolení této funkce.

    CView::OnFilePrintPreview spustí režim náhledu voláním dokumentované podpůrná funkce CView::DoPrintPreview.CView::DoPrintPreview je hlavním motorem pro náhled tisku smyčky, stejně jako OnFilePrint je hlavním motorem pro tisk opakovat.

    Náhled operace lze přizpůsobit mnoha způsoby předáním různých parametrů pro DoPrintPreview.Najdete na Technická poznámka: 30, který popisuje některé podrobnosti náhledu tisku a jak ji přizpůsobit.

  • ID_FILE_MRU_FILE1... FILE16 rozsah ID příkazu pro seznam naposledy použitých souborů list.

    CWinApp::OnUpdateRecentFileMenu obslužnou rutinu UI příkaz update, která je jedním z složitější využití je ON_UPDATE_COMMAND_UI mechanismus.Ve vaší nabídce zdroj, potřebujete pouze definovat jednu položku s ID ID_FILE_MRU_FILE1.Tuto položku nabídky zpočátku zakázáno.

    Seznam roste, nabídka Další položky budou přidány do seznamu položek jako seznamu naposledy použitých aplikací.Standardní CWinApp implementace výchozí standardní limit čtyř naposledy použitých souborů.Výchozí nastavení lze změnit pomocí volání CWinApp::LoadStdProfileSettings s hodnotou větší nebo menší.Seznam naposledy použitých položek je uložen v aplikace.Soubor INI.Je ve vaší aplikaci načíst seznam InitInstance při volání funkce LoadStdProfileSettingsa uložení při ukončení aplikace.Obslužné rutiny uživatelského rozhraní příkaz update MRU také převede absolutní cesty na relativní cesty pro zobrazení v nabídce Soubor.

    CWinApp::OnOpenRecentFile je ON_COMMAND rutinu, která provede vlastní příkaz.Jednoduše získá název souboru ze seznamu naposledy použitých položek a volání CWinApp::OpenDocumentFile, která provádí veškeré práce otevírání souboru a aktualizace seznamu naposledy použitých aplikací.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_EDIT_CLEAR vymaže aktuální výběr

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci pomocí příkazu CEdit::Clear.Příkaz je zakázán, pokud neexistuje žádné aktuální výběr.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_CLEAR_ALL Vymaže celý dokument.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.Ukázkový kurz práce s knihovnou MFC naleznete v tématu KLIKYHÁKY příklad implementace.

  • ID_EDIT_COPY zkopíruje aktuální výběr do schránky.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci tohoto příkazu, který kopíruje aktuálně vybraného textu do schránky jako CF_TEXT pomocí CEdit::Copy.Příkaz je zakázán, pokud neexistuje žádné aktuální výběr.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_CUT vyjme aktuální výběr do schránky.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci tohoto příkazu, který ořízne aktuálně vybraného textu do schránky jako CF_TEXT pomocí CEdit::Cut.Příkaz je zakázán, pokud neexistuje žádné aktuální výběr.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_FIND začíná operace hledání se vyvolá dialogové okno nemodální najít.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci tento příkaz, který volá funkci Pomocník implementace OnEditFindReplace a uložit do proměnné soukromý implementační předchozí nastavení hledání a nahrazení.CFindReplaceDialog Třída slouží ke správě nemodální dialogové okno pro zobrazení výzvy uživateli.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_PASTE vloží aktuální obsah schránky.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci tohoto příkazu, který kopíruje aktuální data schránky nahradí vybraný text pomocí CEdit::Paste.Příkaz je zakázán, pokud není žádná CF_TEXT do schránky.

    COleClientDoc pro tento příkaz poskytuje obslužnou rutinu UI příkaz aktualizace.Pokud schránka neobsahuje li zboží nebo objekt OLE, bude příkaz zakázán.Zodpovídáte za psát obslužné rutiny pro aktuální příkaz provedete vložením skutečné.Pokud aplikace OLE, můžete vložit další formáty, měli byste poskytnout vlastní aktualizace UI obslužná rutina příkazů v listu nebo dokumentu (to znamená někde před COleClientDoc v cílový příkaz směrování).

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

    Použijte pro nahrazení standardní implementaci OLE, COleClientItem::CanPaste.

  • ID_EDIT_PASTE_LINK vloží odkaz z aktuální obsah schránky.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    COleDocumentpro tento příkaz poskytuje obslužnou rutinu UI příkaz aktualizace.Pokud schránka neobsahuje korelovat zboží nebo objekt OLE, bude příkaz zakázán.Zodpovídáte za psát obslužné rutiny pro aktuální příkaz provedete vložením skutečné.Pokud aplikace OLE, můžete vložit další formáty, měli byste poskytnout vlastní aktualizace UI obslužná rutina příkazů v listu nebo dokumentu (to znamená někde před COleDocument v cílový příkaz směrování).

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

    Použijte pro nahrazení standardní implementaci OLE, COleClientItem::CanPasteLink.

  • ID_EDIT_PASTE_SPECIAL vloží aktuální obsah schránky s možnostmi.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.MFC neposkytuje toto dialogové okno.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_REPEAT se může opakovat poslední operaci.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci tohoto příkazu opakovat poslední operaci hledání.Slouží k implementaci privátní proměnné pro poslední hledání.Příkaz je zakázán, pokud nelze k pokusu o hledání.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • Začíná ID_EDIT_REPLACE dialogovém okně nemodální nahradit vyvolá operaci nahrazení.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci tento příkaz, který volá funkci Pomocník implementace OnEditFindReplace a uložit do proměnné soukromý implementační předchozí nastavení hledání a nahrazení.CFindReplaceDialog Třída slouží ke správě nemodální dialogové okno, které vyzve uživatele.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_SELECT_ALL vybere celý dokument.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci pro tento příkaz, který vybere veškerý text v dokumentu.Příkaz je zakázán, pokud není žádný text vyberte.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_UNDO vrátí zpět poslední operaci.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    CEditViewposkytuje implementaci tohoto příkazu, pomocí CEdit::Undo.Tento příkaz je zakázán, pokud CEdit::CanUndo vrátí hodnotu FALSE.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_EDIT_REDO provede znovu poslední operaci.

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro každý CView-odvozené třídy.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • ID_WINDOW_NEW Otevře další okno aktivního dokumentu.

    CMDIFrameWnd::OnWindowNew této výkonné funkce implementuje pomocí šablony dokumentu aktuálního dokumentu vytvořit jiný rámec obsahující jiné zobrazení aktuálního dokumentu.

    Podobně jako většina více dokumentů rozhraní (MDI) příkazy nabídky okna příkaz bude zakázán, pokud neexistuje žádné aktivní podřízené okno MDI.

    Vlastní obslužná rutina tento příkaz není doporučeno.Pokud chcete zadat příkaz, který vytvoří další zobrazení nebo rámečku windows, budete pravděpodobně lepší inventing vlastní příkaz.Lze zkopírovat kód z CMDIFrameWnd::OnWindowNew a upravit tak, aby zvláštní rámec a zobrazení třídy podle svého vkusu.

  • ID_WINDOW_ARRANGE Uspořádá ikony v dolní části okna aplikace MDI.

    CMDIFrameWndimplementuje standardní příkaz MDI v provedení pomocnou funkci OnMDIWindowCmd.Tento pomocník mapuje ID příkazů zpráv oken MDI a tedy můžete sdílet velké množství kódu.

    Podobně jako většina příkazů nabídky okno MDI příkaz je zakázán, pokud neexistuje žádné aktivní podřízené okno MDI.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_WINDOW_CASCADE Cascades windows, aby se překrývala.

    CMDIFrameWndimplementuje standardní příkaz MDI v provedení pomocnou funkci OnMDIWindowCmd.Tento pomocník mapuje ID příkazů zpráv oken MDI a tedy můžete sdílet velké množství kódu.

    Podobně jako většina příkazů nabídky okno MDI příkaz je zakázán, pokud neexistuje žádné aktivní podřízené okno MDI.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • Windows ID_WINDOW_TILE_HORZ vedle sebe ve vodorovném směru.

    Tento příkaz je implementována v CMDIFrameWnd stejně jako ID_WINDOW_CASCADE, s výjimkou pro operaci se používá jinou zprávu oken MDI.

    Výchozí orientace vedle sebe měli vybrat pro vaši aplikaci.Provedete to tak, že změníte ID pro položku nabídky okno "Vedle sebe" buď ID_WINDOW_TILE_HORZ nebo ID_WINDOW_TILE_VERT.

  • Windows ID_WINDOW_TILE_VERT vedle sebe ve svislém směru.

    Tento příkaz je implementována v CMDIFrameWnd stejně jako ID_WINDOW_CASCADE, s výjimkou pro operaci se používá jinou zprávu oken MDI.

    Výchozí orientace vedle sebe měli vybrat pro vaši aplikaci.Provedete to tak, že změníte ID pro položku nabídky okno "Vedle sebe" buď ID_WINDOW_TILE_HORZ nebo ID_WINDOW_TILE_VERT.

  • ID_WINDOW_SPLIT klávesnice rozhraní pro rozdělovače.

    CViewTento příkaz pro zpracování CSplitterWnd provedení.Pokud zobrazení část okna rozdělovač, bude tento příkaz delegovat na implementaci funkce CSplitterWnd::DoKeyboardSplit.Budou zahrnuty v režimu, který umožní uživatelům klávesnice nebo unsplit okna dělicí příčky.

    Tento příkaz je zakázán, pokud zobrazení není rozdělovač.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_APP_ABOUT vyvolá dialogové okno o.

    Neexistuje žádná standardní implementace aplikace o pole.Aplikace vytvořené AppWizard výchozí bude vytvořit třídu vlastního dialogového okna aplikace a použít jako o přijímač.AppWizard bude také napsat obslužné rutiny triviální příkaz, který zpracovává příkaz a vyvolá dialogové okno.

    Téměř vždy provede tento příkaz.

  • ID_APP_EXIT ukončit aplikaci.

    CWinApp::OnAppExit zpracovává tento příkaz odešle WM_CLOSE zpráva hlavního okna aplikace.Standardní vypnutí aplikace (vyzvání dirty soubory a tak dále) jsou zpracována CFrameWnd provedení.

    Vlastní obslužná rutina tento příkaz není doporučeno.Přepsání CWinApp::SaveAllModified nebo CFrameWnd zavírání logika je doporučeno.

    Pokud chcete provést tento příkaz, doporučujeme že použít tento příkaz ID.

  • Témata nápovědy k ID_HELP_INDEX jsou uvedeny v.Soubor HLP.

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    CWinApp::OnHelpIndexzpracovává příkaz trivially voláním CWinApp::WinHelp.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_HELP_USING zobrazí nápovědu k používání nápovědy.

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    CWinApp::OnHelpUsingzpracovává příkaz trivially voláním CWinApp::WinHelp.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • Režim nápovědy ID_CONTEXT_HELP zadá SHIFT-F1.

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    CWinApp::OnContextHelpzpracovává příkaz Nastavení režimu kurzor nápovědy, modální smyčky a čeká na uživatele k výběru určitého okna zobrazí nápovědu.Najdete na Technická poznámka: 28 Další informace o používání nápovědy knihovny MFC.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_HELP poskytuje nápovědu pro aktuální kontext

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    CWinApp::OnHelpzískáním kontextu správnou nápovědu pro aktuální kontext aplikace zpracovává tento příkaz.To zpracovává jednoduché Nápověda F1, Nápověda k zprávami a tak dále.Najdete na Technická poznámka: 28 pro provádění pomoci další podrobnosti o knihovny MFC.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_DEFAULT_HELP zobrazí výchozí nápovědu pro kontext

    [!POZNÁMKA]

    Je třeba připojit k vaší CWinApp-odvozené třídy mapu zpráv pro povolení této funkce.

    Tento příkaz je obvykle mapován na CWinApp::OnHelpIndex.

    Potřeby nerozlišuje mezi výchozí Nápověda a rejstřík nápovědy lze poskytnout obslužnou rutinu pro jiný příkaz.

  • ID_NEXT_PANE přejde na další podokno

    CViewTento příkaz pro zpracování CSplitterWnd provedení.Pokud zobrazení část okna rozdělovač, bude tento příkaz delegovat na implementaci funkce CSplitterWnd::OnNextPaneCmd.Aktivní zobrazení tak budou přesunuty do dalšího podokna v příčky.

    Tento příkaz je zakázán, pokud zobrazení není rozdělovač nebo není k dispozici žádné další podokno zobrazíte.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_PREV_PANE, přejde na předchozí podokno

    CViewTento příkaz pro zpracování CSplitterWnd provedení.Pokud zobrazení část okna rozdělovač, bude tento příkaz delegovat na implementaci funkce CSplitterWnd::OnNextPaneCmd.Aktivní zobrazení tak budou přesunuty do předchozího podokna v příčky.

    Tento příkaz je zakázán, pokud zobrazení není rozdělovač nebo je bez předchozího podokna přejít na.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_OLE_INSERT_NEW vloží nový objekt OLE

    Aktuálně není k dispozici žádný standardní provedení tohoto příkazu.Je nutné implementovat pro vaše CView-odvozené třídy, které chcete vložit novou položku nebo objekt OLE na aktuální výběr.

    Všechny aplikace klienta OLE musí implementovat tento příkaz.AppWizard, s možností OLE vytvoří kostru provádění OnInsertObject v zobrazení třídy, která je třeba provést.

    Viz ukázka MFC OLE OCLIENT příklad pro úplné provedení tohoto příkazu.

  • ID_OLE_EDIT_LINKS úpravy OLE odkazy

    COleDocumentTento příkaz se zpracovává pomocí implementace MFC-Pokud v dialogovém okně Standardní OLE odkazy.Provádění tohoto dialogového okna se přistupuje přes COleLinksDialog třídy.Pokud aktuální dokument neobsahuje žádné odkazy, příkaz je zakázán.

    Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_OLE_VERB_FIRST...Poslední rozsah ID pro akce OLE

    COleDocumentTento rozsah ID příkazu používá sloves podporovaných aktuálně vybranou položku nebo objekt OLE.Rozsah musí být od daného typu zboží či objekt OLE podporují nula nebo více vlastních akcí.V nabídce aplikace, měli byste mít jednu položku s ID ID_OLE_VERB_FIRST.Při spuštění programu v nabídce bude aktualizován popis příslušné nabídky slovesa (nebo v rozbalovací nabídce s mnoha sloves).Správa nabídky OLE jsou zpracována AfxOleSetEditMenu, v příkazu update UI obslužnou rutinu pro tento příkaz.

    Neexistují žádné explicitní příkaz obslužné rutiny pro zpracování všech ID příkazu v tomto rozsahu.COleDocument::OnCmdMsg je přepsána soutisk všech ID příkazu v tomto rozsahu je převádět na formát čísla od nuly sloveso a spustit server o tomto slovesu (pomocí COleClientItem::DoVerb).

    Nebo jiné použití tohoto příkazu ID rozsahu přizpůsobení se nedoporučuje.

  • ID_VIEW_TOOLBAR Přepíná panel nástrojů, zapnutí a vypnutí

    CFrameWndzpracovává tento příkaz a obslužné rutiny uživatelského rozhraní příkaz update Chcete-li přepnout stav viditelnosti panelu nástrojů.Panel nástrojů musí být podřízené okno rámce s ID podřízené okno AFX_IDW_TOOLBAR.Obslužná rutina příkazů skutečně přepíná viditelnost panelu nástrojů okna.CFrameWnd::RecalcLayoutse používá k překreslení okna rámce pomocí panelu nástrojů v novém stavu.Obslužné rutiny uživatelského rozhraní příkaz update zkontroluje položky nabídky, když je panel nástrojů zobrazen.

    Vlastní obslužná rutina tento příkaz není doporučeno.Pokud chcete přidat další panely nástrojů, můžete zkopírovat a upravit obslužná rutina příkazů a obslužné rutiny příkazu pro aktualizaci uživatelského rozhraní pro tento příkaz.

  • ID_VIEW_STATUS_BAR přepíná na stavovém řádku, zapnutí a vypnutí

    Tento příkaz je implementována v CFrameWnd stejně jako ID_VIEW_TOOLBAR, s výjimkou ID jiné podřízené okno (AFX_IDW_STATUS_BAR) je používán.

Obslužné rutiny aktualizace příkazu

ID několik standardních příkazů slouží jako indikátory v stavových řádků.Tyto stejný mechanismus zpracování UI příkaz aktualizace zobrazíte pomocí jejich aktuální stav během doby nečinnosti aplikace.Vzhledem k tomu, že nemůže být vybraný uživatelem (nemůže tedy řídit stav podokna panel), pak nemá smysl mít ON_COMMAND obslužné rutiny pro tyto identifikátory příkazů.

  • ID_INDICATOR_CAPS : CAP lock indikátor.

  • ID_INDICATOR_NUM : indikátor NUM lock.

  • ID_INDICATOR_SCRL : SCRL indikátor uzamčení.

  • ID_INDICATOR_KANA : Indikátor uzamčení KANA (platí pouze pro japonské systémy).

Všechny tyto tři jsou implementovány v CFrameWnd::OnUpdateKeyIndicator, implementace pomocníka, který používá ID příkazu Mapovat na odpovídající virtuální klíč.Společné provádění povolí nebo zakáže (podokna stavu zakázáno = žádný text) CCmdUI objektu v závislosti na tom, zda je příslušný virtuální klíč aktuálně uzamčena.

Vlastní obslužná rutina tento příkaz není doporučeno.

  • ID_INDICATOR_EXT: Linkabyl ukončen výběr ukazatele.

  • ID_INDICATOR_OVR: OVeRnarazila na indikátor.

  • ID_INDICATOR_REC: RECording indikátor.

Aktuálně není k dispozici žádný standardní implementaci těchto ukazatelů.

Pokud se rozhodnete implementovat tyto ukazatele, doporučujeme použít tato ID indikátoru a zachování řazení ukazatelů ve stavovém řádku (to znamená v tomto pořadí: EXT, CAP, NUM, SCRL, přes, REC).

Viz také

Další zdroje

Technické poznámky podle čísel

Technické poznámky podle kategorií