Sdílet prostřednictvím


Postupy: Přidání směrování příkazů do ovládacího prvku Windows Forms

CWinFormsView směřuje příkazy a aktualizace příkazů zpráv uživatelského rozhraní do uživatelského ovládacího prvku, aby mohla zpracovávat příkazy knihovny MFC (například rámec nabídky položek a tlačítka panelu nástrojů).

Uživatelský ovládací prvek používá ICommandTarget::Initialize k uložení odkazu do zdrojového objektu příkazu v m_CmdSrc, jak je ukázáno v následujícím příkladu.Chcete-li použít ICommandTarget, musíte přidat odkaz na mfcmifc80.dll.

CWinFormsView zpracovává několik obecných zobrazovacích oznámení knihovny MFC předáváním do spravovaného uživatelského ovládacího prvku.Tato oznámení zahrnují metody OnInitialUpdate, OnUpdate a OnActivateView z Rozhraní IView.

Toto téma předpokládá, že jste již dříve dokončili Postupy: Vytvoření uživatelského ovládacího prvku a vložení tohoto prvku do dialogového okna a Postupy: Vytvoření uživatelského ovládacího prvku a hostitelské poskytování zobrazení MDI.

Chcete-li vytvořit hostitelskou aplikaci knihovny MFC

  1. Otevřete knihovnu ovládacích prvků formulářů Windows, kterou jste vytvořili v tématu Postupy: Vytvoření uživatelského ovládacího prvku a vložení tohoto prvku do dialogového okna.

  2. Přidejte odkaz na mfcmifc80.dll, což můžete provést kliknutím pravým tlačítkem myši na uzel projektu v Průzkumníku řešení, vyberte Přidat odkaz a Odkaz a poté přejděte na Microsoft Visual Studio 10.0\VC\atlmfc\lib.

  3. Otevřete UserControl1.Designer.cs a přidejte následující příkaz using:

    using Microsoft.VisualC.MFC;
    
  4. Navíc v UserControl1.Designer.cs, změňte tento řádek:

    partial class UserControl1
    

    na toto:

    partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTarget
    
  5. To přidejte jako první řádek definice třídy pro UserControl1:

    private ICommandSource m_CmdSrc;
    
  6. Přidejte následující definice metod do UserControl1 (budeme vytvářet ID ovládacího prvku knihovny MFC v následujícím kroku):

    public void Initialize (ICommandSource cmdSrc)
    {
       m_CmdSrc = cmdSrc;
       // need ID of control in MFC dialog and callback function 
       m_CmdSrc.AddCommandHandler(32771, new CommandHandler (singleMenuHandler));
    }
    
    private void singleMenuHandler (uint cmdUI)
    {
       // User command handler code
       System.Windows.Forms.MessageBox.Show("Custom menu option was clicked.");
    }
    
  7. Otevřete aplikaci knihovny MFC, kterou jste vytvořili v Postupy: Vytvoření uživatelského ovládacího prvku a hostitelské poskytování zobrazení MDI.

  8. Přidejte položku nabídky, která vyvolá singleMenuHandler.

    Přejděte na Zobrazení zdrojů (CTRL+SHIFT+E), rozbalte složku Nabídky a potom dvakrát klikněte na IDR_MFC02TYPE.Zobrazí se editor nabídky.

    Přidejte položku nabídky v dolní části nabídky Zobrazení.Poznamenejte si ID položky nabídky v okně Vlastnosti.Uložte soubor.

    V Průzkumníku řešení otevřete soubor Resource.h, zkopírujte hodnotu ID pro položku nabídky, kterou pouze přidáte, a vložte tuto hodnotu jako první parametr m_CmdSrc.AddCommandHandler volání v metodě jazyka C# Initialize (v případě potřeby nahrazením 32771).

  9. Sestavte a spusťte projekt.

    V nabídce Sestavení klikněte na příkaz Sestavit řešení.

    V nabídce Ladit klikněte na Spustit bez ladění.

    Vyberte možnost nabídky, kterou jste přidali.Všimněte si, že je volána metoda v knihovně .dll.

Viz také

Referenční dokumentace

Rozhraní ICommandSource

Rozhraní ICommandTarget

CommandHandler – delegát

Další zdroje

Hostitelské poskytování uživatelského ovládacího prvku Windows Forms jako zobrazení MFC