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
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.
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.
Otevřete UserControl1.Designer.cs a přidejte následující příkaz using:
using Microsoft.VisualC.MFC;
Navíc v UserControl1.Designer.cs, změňte tento řádek:
partial class UserControl1
na toto:
partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTarget
To přidejte jako první řádek definice třídy pro UserControl1:
private ICommandSource m_CmdSrc;
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."); }
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.
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).
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
Další zdroje
Hostitelské poskytování uživatelského ovládacího prvku Windows Forms jako zobrazení MFC