Sdílet prostřednictvím


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

CWinFormsView směruje příkazy a zprávy uživatelského rozhraní update-command do uživatelského ovládacího prvku, aby mohl zpracovávat příkazy MFC (například položky nabídky rámečku a tlačítka panelu nástrojů).

Uživatelský ovládací prvek používá ICommandTarget::Initialize k uložení odkazu na zdrojový objekt příkazu v m_CmdSrc, jak je znázorněno v následujícím příkladu. Pokud chcete použít ICommandTarget , musíte přidat odkaz na mfcmifc80.dll.

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

V tomto tématu se předpokládá, že jste už dokončili postup: Vytvoření uživatelského ovládacího prvku a hostitele v dialogovém okně a postupy: Vytvoření uživatelského ovládacího prvku a zobrazení MDI hostitele.

Vytvoření hostitelské aplikace MFC

  1. Otevřete model Windows Forms knihovnu ovládacích prvků, kterou jste vytvořili v části Postupy: Vytvoření uživatelského ovládacího prvku a hostitele v dialogovém okně.

  2. Přidejte odkaz na mfcmifc80.dll, který můžete provést tak, že v Průzkumník řešení kliknete pravým tlačítkem na uzel projektu, vyberete Přidat, Odkaz a pak přejdete 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. V UserControl1.Designer.cs také změňte tento řádek:

    partial class UserControl1
    

    měli změnit na:

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

    private ICommandSource m_CmdSrc;
    
  6. Přidejte následující definice UserControl1 metody (v dalším kroku vytvoříme ID ovládacího prvku MFC):

    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 MFC, kterou jste vytvořili v části Postupy: Vytvoření uživatelského ovládacího prvku a zobrazení MDI hostitele.

  8. Přidejte možnost nabídky, která vyvolá singleMenuHandler.

    Přejděte do zobrazení zdrojů (Ctrl+Shift+E), rozbalte složku Nabídky a poklikejte na IDR_MFC02TYPE. Zobrazí se editor nabídek.

    V dolní části nabídky Zobrazit přidejte možnost nabídky. Všimněte si ID možnosti nabídky v okně Vlastnosti . Uložte soubor.

    V Průzkumník řešení otevřete soubor Resource.h, zkopírujte hodnotu ID pro právě přidanou možnost nabídky a vložte tuto hodnotu jako první parametr do m_CmdSrc.AddCommandHandler volání v metodě projektu Initialize C# (v případě potřeby nahraďte32771).

  9. Sestavte a spusťte projekt.

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

    V nabídce Ladění klepněte na tlačítko Start bez ladění.

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

Viz také

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