Cette note décrit les implémentations de commande standard fournies par MFC 2.0. Veuillez vous assurer de lire en premier Technical Note 21 puisque qui décrit les mécanismes utilisés pour mettre en œuvre la plupart des commandes standards.
Cette description suppose la connaissance de la MFC architectures, API et pratique de programmation courante. Documentées ainsi que sans papiers « mise en œuvre uniquement » API est décrites. Ce n'est pas un point de départ pour en savoir plus sur les fonctionnalités d'ou comment programmer dans MFC. Veuillez consulter le Guide du programmeur Visual C++ pour plus d'information générale et pour le détail des API documentées.
Le problème
MFC définit plusieurs ID de commande standard dans le fichier d'en-tête AFXRES.H. charge pour ces commandes varie. Comprendre où et comment les classes framework gérer ces volonté de commandes non seulement de vous montrer comment le cadre fonctionne en interne mais fournira des informations utiles sur la façon de personnaliser les implémentations standards et nous espérons que vous apprendrez quelques techniques pour mettre en œuvre vos propres gestionnaires de commande.
Contenu de cette Note technique
Chaque ID de commande est décrite dans deux sections:
Implémentations de commande par défaut la plupart sont précâblées en carte de message de classe de base du cadre. Il existe quelques implémentations de commande nécessitant un câblage explicit dans votre classe dérivée. Celles-ci sont décrites sous « Note ». Si vous avez choisi les bonnes options de AppWizard, ces gestionnaires d'événements par défaut seront connectés pour vous dans l'application squelette générée.
Convention de nommage
Commandes standard suivent une convention d'appellation simple que nous recommandons que vous utilisez si possible. Commandes plus standard sont situés dans des endroits standards dans la barre de menus d'une application. Le nom symbolique de la commande démarre avec « ID_ » suivie du nom de menu contextuel standard, suivi du nom d'élément de menu. Le nom symbolique est en majuscules, avec un trait de soulignement mot-pauses. Pour les commandes qui n'ont pas de noms d'élément de menu standard, un nom de commande logique est défini à partir de « ID_ » (par exemple, ID_NEXT_PANE).
Nous utilisons le préfixe « ID_ » pour indiquer les commandes qui sont conçus pour être lié à des éléments de menu, boutons de la barre d'outils ou autres objets d'interface utilisateur de commande. Gestionnaires de commande manutention des commandes « ID_ » devraient utiliser les mécanismes ON_COMMAND et ON_UPDATE_COMMAND_UI de l'architecture de commande MFC.
Nous recommandons que vous utilisez le préfixe « IDM_ » standard pour des éléments de menu qui ne pas suivre l'architecture de commandement et besoin de code de menu spécifique pour activer et désactiver les. Bien sûr le nombre de commandes spécifiques du menu devrait être petit car suivant l'architecture de commande MFC non seulement rend les gestionnaires de commande plus puissante (puisqu'ils travailleront avec les barres d'outils) mais rend le code de gestionnaire d'événements de commande réutilisable.
Gammes ID
Veuillez vous référer aux techniques Note 20 pour plus de détails sur l'utilisation des gammes ID dans MFC.
Les commandes standard MFC entrent dans la gamme 0xE000 à 0xEFFF. Veuillez ne s'appuient pas sur les valeurs spécifiques de ces identifiants car ils sont susceptibles d'être modifiées dans les versions futures de la bibliothèque.
Votre application doit définir ses commandes dans la plage 0 x 8000 à 0xDFFF.
ID de commande standard
Pour chaque ID de commande, il y a une chaîne de ligne rapide message standard qui peut être trouvée dans les invites de fichier.RC. L'ID de chaîne pour cette invite de menu doit être le même que pour l'ID de commande.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
CWinApp::OnFileNew implémente cette commande différemment selon le nombre de modèles de document dans l'application. Si il n'y a qu'un seul CDocTemplate, CWinApp::OnFileNew va créer un nouveau document de ce type, ainsi que la classe frame et vue.
Si il n'y a plus d'un CDocTemplate, CWinApp::OnFileNew vous invite l'utilisateur à une boîte de dialogue (AFX_IDD_NEWTYPEDLG) en les laissant choisir quel type de document à utiliser. Les sélectionnés CDocTemplate est utilisé pour créer le document.
Une personnalisation commune de ID_FILE_NEW est de fournir un différent et plus de choix de types de documents graphiques. Dans ce cas, vous pouvez implémenter votre propre CMyApp::OnFileNew et placez-le dans votre carte message au lieu de CWinApp::OnFileNew. Il n'y a pas besoin d'appeler l'implémentation de la classe de base.
Une autre personnalisation commune de ID_FILE_NEW est de fournir une commande distincte pour la création d'un document de chaque type. Dans ce cas, vous devez définir nouvelle commande ID, par exemple ID_FILE_NEW_CHART et ID_FILE_NEW_SHEET.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
CWinApp::OnFileOpen est une implémentation très simple d'appeler CWinApp::DoPromptFileName suivi par CWinApp::OpenDocumentFile avec le nom de fichier ou de chemin d'accès du fichier à ouvrir. La routine de mise en œuvre de CWinApp DoPromptFileName la boîte de dialogue FichierOuvrir standard et le remplit avec les extensions de fichier obtenues par les modèles de document actuel.
Une personnalisation commune de ID_FILE_OPEN est de personnaliser la boîte de dialogue FichierOuvrir ou d'ajouter des filtres de fichier supplémentaires. La méthode recommandée pour personnaliser ce est de remplacer l'implémentation par défaut par votre propre boîte de dialogue FichierOuvrir, appeler CWinApp::OpenDocumentFile avec du document nom du fichier ou chemin d'accès. Il n'y a pas besoin d'appeler la classe de base.
CDocument::OnFileClose appelle CDocument::SaveModified pour inviter l'utilisateur à enregistrer le document, si elle a été modifiée et appelle ensuite OnCloseDocument. Tous dans la logique de fermeture, y compris la destruction du document, se faite dans la routine OnCloseDocument.
&Notenbsp ;ID_FILE_CLOSE agit différemment d'un message WM_CLOSE ou une commande du système SC_CLOSE est envoyé à la fenêtre frame de documents. Fermer une fenêtre va fermer le document uniquement si c'est la dernière fenêtre frame montrant le document. Le document de clôture avec ID_FILE_CLOSE ne fermera pas seulement le document mais va fermer toutes les fenêtres d'image montrant le document.
L'implémentation utilise une routine d'assistance CDocument::DoSave qui est utilisé pour les OnFileSave et les OnFileSaveAs. Si vous enregistrez un document qui n'a pas été enregistré avant (c'est-à-dire, il n'a pas un nom de chemin d'accès, comme dans le cas de FileNew) ou qui a été lu à partir d'un document en lecture seule, la logique de OnFileSave va agir comme la commande ID_FILE_SAVE_AS et demander à l'utilisateur de fournir un nouveau nom de fichier. Le processus réel de l'ouverture du fichier et de faire l'économie se fait au moyen de la fonction virtuelle OnSaveDocument.
Il y a deux raisons courantes pour personnaliser ID_FILE_SAVE. Pour les documents qui ne sont pas enregistrées, simplement supprimer la ID_FILE_SAVE des éléments de menu et les boutons de la barre d'outils de votre interface utilisateur. Assurez-vous également que vous sale jamais votre document (c'est-à-dire jamais appel CDocument::SetModifiedFlag) et le cadre ne provoquera jamais le document être sauvés. Pour les documents qu'enregistrer dans endroit autre qu'un fichier sur disque, définissez une nouvelle commande pour cette opération.
Dans le cas d'un COleServerDoc, ID_FILE_SAVE est utilisé à la fois pour le fichier enregistrer (pour les documents de la normales) et de la mise à jour de fichier (pour les documents incorporés).
Si vos données d'un document sont stockées dans les fichiers de disque individuel, mais vous ne voulez pas utiliser la valeur par défaut CDocument sérialiser la mise en œuvre, vous devez substituer CDocument::OnSaveDocument au lieu de OnFileSave.
La mise en œuvre de la CDocument::OnFileSaveAs utilise la même routine d'assistance de CDocument::DoSave comme OnFileSave. La commande OnFileSaveAs est gérée comme ID_FILE_SAVE si les documents n'avaient aucun nom de fichier avant de l'enregistrer. COleServerDoc::OnFileSaveAs implémente la logique pour enregistrer un fichier de données de document normal ou pour enregistrer un document de serveur qui représente un objet OLE incorporé dans certains autre application dans un fichier distinct.
Si vous personnalisez la logique de ID_FILE_SAVE, vous voudrez probablement personnaliser ID_FILE_SAVE_AS de façon similaire ou l'opération de « Enregistrer sous » ne s'applique pas à votre document. Vous pouvez supprimer l'élément de menu de votre barre de menu, si elle n'est pas nécessaire.
La mise en œuvre de la COleServerDoc::OnFileSaveCopyAs est très similaire à CDocument::OnFileSaveAs, sauf que l'objet document n'est pas « attaché » dans le fichier sous-jacent après la sauvegarde. Autrement dit, si le document en mémoire a été « modifié » avant de l'enregistrer, il est encore « modifié ». En outre, cette commande n'a aucun effet sur le nom de chemin d'accès ou titre stocké dans le document.
La mise en œuvre de la COleServerDoc::OnUpdateDocument simplement notifiies le conteneur que l'intégration doit être enregistré. Le conteneur appelle ensuite les approprié OLE API afin de sauver l'objet incorporé.
Il n'existe actuellement aucune norme pour cette boîte de dialogue, et le cadre n'a aucune implémentation par défaut de cette commande.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
Cette commande appelle la boîte de dialogue standard d'impression installation qui permet à l'utilisateur de personnaliser l'imprimante et imprimer au moins les paramètres de ce document ou au plus tous les documents dans la présente demande. Vous devez utiliser le panneau de configuration pour modifier les paramètres de l'imprimante par défaut pour l'ensemble du système.
CWinApp::OnFilePrintSetup est une implémentation très simple la création d'un objet CPrintDialog et appeler la fonction de mise en œuvre de CWinApp::DoPrintDialog . Cette commande définit la configuration imprimante par défaut de demande.
Le besoin commun de personnalisation de cette commande est de permettre aux paramètres de l'imprimante per-document, qui doivent être stockés avec le document enregistré. Pour cela que vous devez ajouter un gestionnaire de message-carte dans votre classe CDocument qui crée un objet CPrintDialog , il initialise avec les attributs de l'imprimante appropriée (généralement le champ hDevMode et hDevNames), appelez le CPrintDialog::DoModal et enregistrer les paramètres de l'imprimante modifié. Pour une application robuste, vous devez examiner la mise en œuvre de CWinApp::DoPrintDialog pour détecter les erreurs et CWinApp::UpdatePrinterSelection traitant des valeurs par défaut raisonnables et le suivi des modifications de l'échelle du système imprimante.
&Notenbsp ; Vous devez vous connecter cela à votre CView-dérivé (carte) de la classe message pour activer cette fonctionnalité.
Cette commande imprime le document actif, ou plus correctement, démarre le processus d'impression, qui consiste à invoquer la boîte de dialogue Imprimer standard et le moteur d'impression en cours d'exécution.
CView::OnFilePrint implémente la boucle principale d'impression et de cette commande. Elle appelle le virtuel CView::OnPreparePrinting pour inviter l'utilisateur à la boîte de dialogue Imprimer. Il prépare la sortie DC d'aller à l'imprimante, apporte la boîte de dialogue progression d'impression (AFX_IDD_PRINTDLG), puis envoie l'évasion StartDoc à l'imprimante. CView::OnFilePrint contient également la boucle imprimée orientée sur la page principale. Pour chaque page, il appelle le virtuel CView::OnPrepareDC suivie d'une fuite de StartPage et appeler le virtuel CView::OnPrint pour cette page. Une fois terminé, le virtuel CView::OnEndPrinting est appelé, et la boîte de dialogue d'impression de progrès est fermé.
L'architecture d'impression MFC est conçu pour raccorder de différentes façons pour l'aperçu avant impression et impression. Vous trouverez normalement les diverses fonctions overridable CView adéquate pour toutes les tâches d'impression axé sur la page. Seulement d'une application qui utilise l'imprimante pour les pages non axés sur sortie, vous constateriez qu'il fallait remplacer la mise en œuvre de la ID_FILE_PRINT.
&Notenbsp ; Vous devez vous connecter cela à votre CView-dérivé (carte) de la classe message pour activer cette fonctionnalité.
CView::OnFilePrintPreview commence le mode Aperçu avant impression en appelant la fonction documentée d'assistance CView::DoPrintPreview. CView::DoPrintPreview est le principal moteur de la boucle de l'aperçu avant impression, comme OnFilePrint est le principal moteur de la boucle d'impression.
L'opération de l'aperçu avant impression peut être personnalisée dans une variété de façons en passant les différents paramètres à DoPrintPreview. Veuillez vous référer à la technique Note 30, qui traite de certains des détails de l'aperçu avant impression et comment personnaliser.
CWinApp::OnUpdateRecentFileMenu est un gestionnaire de l'interface utilisateur de commande mise à jour qui est un des usages plus avancés du mécanisme ON_UPDATE_COMMAND_UI . Dans votre ressource menu, vous devez uniquement définir un élément de menu unique avec l'ID ID_FILE_MRU_FILE1. Cet élément de menu est initialement désactivé.
Comme le MRU liste grandit, plus menu éléments sont ajoutés à la liste. Le défaut de mise en œuvre CWinApp standard jusqu'à la limite standard de la plupart des quatre fichiers récemment utilisés. Vous pouvez modifier la valeur par défaut en appelant CWinApp::LoadStdProfileSettings avec une valeur plus grande ou plus petite. La liste des derniers fichiers utilisés est stockée dans l'application.Fichier INI. La liste est chargée dans la fonction InitInstance de l'application, si vous appelez LoadStdProfileSettingset êtes enregistrée lors de sorties de votre application. Le gestionnaire de l'interface utilisateur MRU mise à jour de commandes sera également convertir chemins absolus de chemins d'accès relatifs pour l'affichage dans le menu fichier.
CWinApp::OnOpenRecentFile est le gestionnaire d'événements ON_COMMAND qui exécute la commande effective. Elle obtient simplement le nom du fichier de la liste MRU et l'appelle CWinApp::OpenDocumentFile, qui fait tout le travail de l'ouverture du fichier et de mettre à jour la liste MRU.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande à l'aide de CEdit::Clear. La commande est désactivée s'il n'y a aucune sélection en cours.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande. Consultez l'exemple MFC tutoriel SCRIBBLE pour un exemple d'implémentation.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande, qui copie le texte actuellement sélectionné dans le presse-papiers comme CF_TEXT à l'aide de CEdit::Copy. La commande est désactivée s'il n'y a aucune sélection en cours.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande, qui coupe le texte actuellement sélectionné dans le presse-papiers comme CF_TEXT à l'aide de CEdit::Cut. La commande est désactivée s'il n'y a aucune sélection en cours.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande, qui appelle la fonction d'assistance de mise en œuvre OnEditFindReplace à utiliser et à stocker les paramètres précédents de rechercher/remplacer dans les variables privées mise en œuvre. La classe CFindReplaceDialog est utilisée pour gérer la boîte de dialogue non modale pour l'utilisateur.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande, qui copie les données de presse-papiers actuelles remplace le texte sélectionné à l'aide de CEdit::Paste. La commande est désactivée si il n'y a aucun CF_TEXT dans le presse-papiers.
COleClientDoc fournit simplement un gestionnaire de l'interface utilisateur de commande mise à jour de cette commande. Si le presse-papiers ne contient pas un élément OLE intégrable/objet, la commande sera désactivée. Vous êtes responsable de l'écriture le gestionnaire d'événements pour la commande réelle faire le collage réel. Si votre application OLE peut également coller les autres formats, vous devez fournir votre propre gestionnaire de l'interface utilisateur de commande mise à jour dans votre avis ou le document (c'est-à-dire, quelque avant de COleClientDoc dans la commande cible routage).
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Pour remplacer l'implémentation OLE standard, utilisez COleClientItem::CanPaste.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
COleDocument fournit simplement un gestionnaire de l'interface utilisateur de commande mise à jour de cette commande. Si le presse-papiers ne contient pas d'élément/objet OLE raccordables, la commande sera désactivée. Vous êtes responsable de l'écriture le gestionnaire d'événements pour la commande réelle faire le collage réel. Si votre application OLE peut également coller les autres formats, vous devez fournir votre propre gestionnaire de l'interface utilisateur de commande mise à jour dans votre avis ou le document (c'est-à-dire, quelque avant COleDocument dans la commande cible routage).
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Pour remplacer l'implémentation OLE standard, utilisez COleClientItem::CanPasteLink.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée. MFC ne fournit pas cette boîte de dialogue.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande pour répéter la dernière opération de recherche. Les variables privées mise en œuvre de la dernière trouvaille sont utilisés. La commande est désactivée si une recherche ne peut pas être tenté.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande, qui appelle la fonction d'assistance de mise en œuvre OnEditFindReplace à utiliser et à stocker les paramètres précédents de rechercher/remplacer dans les variables privées mise en œuvre. La classe CFindReplaceDialog est utilisée pour gérer la boîte de dialogue non modale qui invite l'utilisateur.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande, sélectionne tout le texte dans le document. La commande est désactivée si il n'y a pas de texte pour sélectionner.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
CEditView fournit une implémentation de cette commande, à l'aide de CEdit::Undo. La commande est désactivée si CEdit::CanUndo renvoie la valeur FALSE.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour chaque classe CView-classe dérivée.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
CMDIFrameWnd::OnWindowNew implémente cette fonctionnalité puissante en utilisant le modèle de document du document actif pour créer un autre cadre contenant une autre vue du document actif.
Comme la plupart multiple document interface (multidocument MDI) fenêtre commandes de menu, la commande est désactivée si il n'y a aucune fenêtre d'enfant MDI actif.
Personnalisation de ce gestionnaire de commande n'est pas recommandée. Si vous souhaitez fournir une commande qui crée des vues supplémentaires ou fenêtres frames, vous serez probablement mieux d'inventer votre propre commande. Vous pouvez cloner le code de CMDIFrameWnd::OnWindowNew et le modifier pour les classes de frame et vue spécifiques de votre goût.
CMDIFrameWnd implémente cette commande standard de MDI dans une fonction d'assistance de mise en oeuvre OnMDIWindowCmd. Cette aide cartes ID de commande à des messages de fenêtres MDI et peut donc partager beaucoup de code.
Comme la plupart les commandes de menu fenêtre MDI, la commande est désactivée si il n'y a aucune fenêtre d'enfant MDI actif.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
CMDIFrameWnd implémente cette commande standard de MDI dans une fonction d'assistance de mise en oeuvre OnMDIWindowCmd. Cette aide cartes ID de commande à des messages de fenêtres MDI et peut donc partager beaucoup de code.
Comme la plupart les commandes de menu fenêtre MDI, la commande est désactivée si il n'y a aucune fenêtre d'enfant MDI actif.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
Cette commande est implémentée dans CMDIFrameWnd tout comme ID_WINDOW_CASCADE, sauf une différentes fenêtres MDI message est utilisé pour l'opération.
Vous devez choisir l'orientation de la tuile par défaut pour votre application. Vous pouvez le faire en changeant l'ID de l'élément de menu Fenêtre « Tuile » à ID_WINDOW_TILE_HORZ ou à ID_WINDOW_TILE_VERT.
Cette commande est implémentée dans CMDIFrameWnd tout comme ID_WINDOW_CASCADE, sauf une différentes fenêtres MDI message est utilisé pour l'opération.
Vous devez choisir l'orientation de la tuile par défaut pour votre application. Vous pouvez le faire en changeant l'ID de l'élément de menu Fenêtre « Tuile » à ID_WINDOW_TILE_HORZ ou à ID_WINDOW_TILE_VERT.
CView gère cette commande pour la mise en œuvre de CSplitterWnd . Si l'avis fait partie d'une fenêtre fractionnée, cette commande va déléguer à la fonction de mise en oeuvre CSplitterWnd::DoKeyboardSplit. Cela place le séparateur dans un mode qui permettra aux utilisateurs de clavier de fractionner ou non refendue une fenêtre fractionnée.
Cette commande est désactivée si l'avis n'est pas un diviseur de.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
Il n'y a pas d'implémentation standard de boîte à propos d'une application. L'application créée par AppWizard par défaut sera créer une classe de boîte de dialogue personnalisée pour votre application et utiliser comme votre boîte à propos. AppWizard écrira également le gestionnaire de commandes trivial qui gère cette commande appelle la boîte de dialogue.
Vous implémenterez presque toujours cette commande.
CWinApp::OnAppExit gère cette commande en envoyant un message WM_CLOSE à la fenêtre principale de l'application. La norme de la demande (demande de fichiers Sales et ainsi de suite) est assurée par la mise en œuvre de la classe CFrameWnd.
Personnalisation de ce gestionnaire de commande n'est pas recommandée. Substitution de CWinApp::SaveAllModified ou la classe CFrameWnd logique de fermeture est recommandé.
Si vous choisissez de mettre en œuvre cette commande, nous recommandons que vous utilisez l'ID de commande.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
CWinApp::OnHelpIndex gère cette commande en appelant trivialement CWinApp::WinHelp.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
CWinApp::OnHelpUsing gère cette commande en appelant trivialement CWinApp::WinHelp.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
CWinApp::OnContextHelp gère les définissant le curseur de la mode aide, entrer dans une boucle modale et en attente pour l'utilisateur de sélectionner une fenêtre pour obtenir de l'aide cette commande. Veuillez vous référer aux techniques Note 28 pour plus de détails sur la mise en oeuvre aide MFC.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
CWinApp::OnHelp gère cette commande en obtenant le contexte d'aide juste pour le contexte actuel de la demande. Cette traite simple aide F1, aide sur les boîtes de message et ainsi de suite. Veuillez vous référer aux techniques Note 28 pour plus de détails sur la mise en oeuvre aide MFC.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
&Notenbsp ; Vous devez vous connecter cela à votre CWinApp-dérivé (carte) de la classe message pour activer cette fonctionnalité.
Cette commande est généralement mappée à CWinApp::OnHelpIndex.
Un gestionnaire de commandes différents peut être fourni si une distinction entre le défaut aide et l'index de l'aide est souhaitée.
CView gère cette commande pour la mise en œuvre de CSplitterWnd . Si l'avis fait partie d'une fenêtre fractionnée, cette commande va déléguer à la fonction de mise en oeuvre CSplitterWnd::OnNextPaneCmd. Cela bougera la vue active au prochain volet dans le séparateur.
Cette commande est désactivée si l'affichage n'est pas dans un séparateur ou il n'y a aucun volet suivant pour aller.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
CView gère cette commande pour la mise en œuvre de CSplitterWnd . Si l'avis fait partie d'une fenêtre fractionnée, cette commande va déléguer à la fonction de mise en oeuvre CSplitterWnd::OnNextPaneCmd. Cela bougera la vue active dans le volet précédent dans le séparateur de.
Cette commande est désactivée si l'affichage n'est pas dans un séparateur ou il n'y a aucun précédent volet pour aller.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
Il n'existe actuellement aucune norme mise en œuvre de cette commande. Vous devez implémenter ceci pour votre CView-dérivé de classe pour insérer un nouvel élément et objet OLE à la sélection en cours.
Toutes les demandes de client OLE doivent mettre en œuvre cette commande. AppWizard, avec l'option OLE, créera une implémentation squelette de OnInsertObject dans votre classe d'affichage que vous aurez à remplir.
Voir l'exemple MFC OLE exemple OCLIENT pour une implémentation complète de cette commande.
COleDocument gère cette commande en utilisant l'application MFC fournis de la boîte de dialogue des liens OLE standard. La mise en œuvre de cette boîte de dialogue est accessible via la classe COleLinksDialog . Si le document ne contenance pas tous les liens, la commande est désactivée.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
COleDocument utilise cette gamme d'ID de commande pour les verbes pris en charge par l'élément OLE actuellement sélectionné/objet. Cela doit être une gamme puisqu'un type donné de point/objet OLE peut prendre en charge zéro ou plusieurs verbes personnalisés. Dans le menu de votre application, vous devez avoir un élément de menu avec l'ID de ID_OLE_VERB_FIRST. Lorsque le programme est exécuté, le menu sera actualisé avec la description de verbe menu approprié (ou un menu déroulant avec plusieurs verbes). La gestion du menu OLE est gérée par AfxOleSetEditMenu, effectuée dans le gestionnaire d'interface utilisateur de commande mise à jour de cette commande.
Il n'y a aucun gestionnaires de commande explicite pour la manipulation de l'ID de commande de cette gamme. COleDocument::OnCmdMsg est substituée pour piéger tous les ID de commande de cette gamme, les transformer en nombres de base zéro de verbe et lancer le serveur de ce verbe (en utilisant COleClientItem::DoVerb).
Personnalisation ou autre utilisation de cette gamme d'ID de commande n'est pas recommandée.
CFrameWnd traite cette commande et le gestionnaire d'événements de l'interface utilisateur mise à jour-commande pour basculer l'état visible de la barre d'outils. La barre d'outils doit être une fenêtre enfant du cadre avec l'ID de la fenêtre enfant de AFX_IDW_TOOLBAR. En fait, le gestionnaire de commandes fait basculer la visibilité de la fenêtre de la barre d'outils. CFrameWnd::RecalcLayout est utilisé pour redessiner la fenêtre frame avec la barre d'outils dans son nouvel État. Le gestionnaire de l'interface utilisateur de commande update vérifie l'élément de menu lorsque la barre d'outils est visible.
Personnalisation de ce gestionnaire de commande n'est pas recommandée. Si vous souhaitez ajouter des barres d'outils supplémentaires, vous voudrez cloner et modifier le gestionnaire de commandes et le gestionnaire d'événements de l'interface utilisateur mise à jour-commande pour cette commande.
Cette commande est implémentée dans la classe CFrameWnd comme ID_VIEW_TOOLBAR, sauf un ID de fenêtre enfant différent (AFX_IDW_STATUS_BAR) est utilisé.
Mise à jour uniquement les gestionnaires de commande
Il y a plusieurs ID de commande standard qui est utilisés comme indicateurs dans les barres d'État. Ces même utilisent l'interface utilisateur de commande update mécanisme de gestion pour afficher leur état visuel actuel pendant la durée d'inactivité application. Puisqu'ils ne peuvent pas être sélectionnées par l'utilisateur (c'est-à-dire, vous ne peut pas pousser un volet barre d'État), alors il n'a aucun sens d'avoir un gestionnaire d'événements ON_COMMAND pour ces ID de commande.
Ces trois sont implémentées dans CFrameWnd::OnUpdateKeyIndicator, une aide de mise en œuvre qui utilise l'ID de commande à la carte à la clé virtuelle appropriée. Une implémentation commune active ou désactive (pour les vitres en état désactivés ne = aucun texte) l'objet de CCmdUI selon la question de savoir si la clé virtuelle appropriée est actuellement verrouillée.
Personnalisation de ce gestionnaire de commande n'est pas recommandée.
Actuellement, il n'y a aucune implémentation standard pour ces indicateurs.
Si vous choisissez de mettre en œuvre de ces indicateurs, nous recommandons que vous utiliser ces ID de l'indicateur et le maintien de l'ordre des indicateurs dans votre barre d'État (c'est-à-dire, dans cet ordre : EXT, PAC, NUM, SCRL, RFP, REC).
&Notes techniques par le numéro |nbsp ; Notes techniques par catégorie