Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
CWinFormsView routeert opdrachten en update-command UI-berichten naar het gebruikersbesturingselement zodat deze MFC-opdrachten kan verwerken (bijvoorbeeld framemenu-items en werkbalkknoppen).
Het gebruikersbesturingselement maakt gebruik van ICommandTarget::Initialize om een verwijzing naar het opdrachtbronobject op m_CmdSrcte slaan, zoals wordt weergegeven in het volgende voorbeeld. Als u deze wilt gebruiken ICommandTarget , moet u een verwijzing naar mfcmifc80.dlltoevoegen.
CWinFormsView verwerkt verschillende algemene MFC-weergavemeldingen door ze door te sturen naar het beheerde gebruikersbeheer. Deze meldingen omvatten de methoden OnInitialUpdate, OnUpdate en OnActivateView .
In dit onderwerp wordt ervan uitgegaan dat u eerder de procedure Hoe: Het gebruikersbeheer en de host maken in een dialoogvenster en Hoe: De gebruikersbeheer en host MDI-weergave maken hebt voltooid.
Om de MFC-hosttoepassing te maken
Open de Besturingselementbibliotheek voor Windows-formulieren die u hebt gemaakt in Procedures: Het gebruikersbeheer en de host maken in een dialoogvenster.
Voeg een verwijzing toe naar mfcmifc80.dll, wat u kunt doen door met de rechtermuisknop op het projectknooppunt in Solution Explorer te klikken, Toevoegen, Verwijzing te selecteren en vervolgens naar Microsoft Visual Studio 10.0\VC\atlmfc\lib te bladeren.
Open UserControl1.Designer.cs en voeg de volgende using-instructie toe:
using Microsoft.VisualC.MFC;Wijzig in UserControl1.Designer.cs ook deze regel:
partial class UserControl1naar dit:
partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTargetVoeg dit toe als de eerste regel van de klassedefinitie voor
UserControl1:private ICommandSource m_CmdSrc;Voeg de volgende methodedefinities toe aan
UserControl1(in de volgende stap maken we de id van het MFC-besturingselement):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."); }Open de MFC-toepassing die u hebt gemaakt in Procedure: Het gebruikersbeheer en de MDI-hostweergave maken.
Voeg een menuoptie toe waarmee
singleMenuHandlerwordt aangeroepen.Ga naar Resourceweergave (Ctrl+Shift+E), vouw de map Menu uit en dubbelklik op IDR_MFC02TYPE. Hiermee wordt de menueditor weergegeven.
Voeg onderaan het menu Beeld een menuoptie toe. Let op de id van de menuoptie in het venster Eigenschappen . Sla het bestand op.
Open in Solution Explorer het bestand Resource.h, kopieer de id-waarde voor de menuoptie die u zojuist hebt toegevoegd en plak deze waarde als de eerste parameter voor de
m_CmdSrc.AddCommandHandleraanroep in de methode vanInitializehet C#-project (vervang32771indien nodig).Bouw het project en voer het uit.
Klik in het menu Bouwen op Oplossing bouwen.
Klik in het menu Foutopsporing op Start zonder foutopsporing.
Selecteer de menuoptie die u hebt toegevoegd. U ziet dat de methode in de .dll wordt aangeroepen.
Zie ook
Een Gebruikersbeheer voor Windows Forms hosten als een MFC-weergave
ICommandSource-interface
ICommandTarget Interface