CCmdUI, classe
Est utilisé uniquement dans un ON_UPDATE_COMMAND_UI
gestionnaire dans une CCmdTarget
classe dérivée de -.
class CCmdUI
Nom | Description |
---|---|
CCmdUI ::ContinueRouting | Indique au mécanisme de routage des commandes de continuer à router le message actuel vers le bas de la chaîne de gestionnaires. |
CCmdUI ::Enable | Active ou désactive l’élément d’interface utilisateur pour cette commande. |
CCmdUI ::SetCheck | Définit l’état de vérification de l’élément d’interface utilisateur pour cette commande. |
CCmdUI ::SetRadio | Comme la SetCheck fonction membre, mais fonctionne sur des groupes radio. |
CCmdUI ::SetText | Définit le texte de l’élément d’interface utilisateur pour cette commande. |
Nom | Description |
---|---|
CCmdUI ::m_nID | ID de l’objet d’interface utilisateur. |
CCmdUI ::m_nIndex | Index de l’objet d’interface utilisateur. |
CCmdUI ::m_pMenu | Pointe vers le menu représenté par l’objet CCmdUI . |
CCmdUI ::m_pOther | Pointe vers l’objet de fenêtre qui a envoyé la notification. |
CCmdUI ::m_pSubMenu | Pointe vers le sous-menu contenu représenté par l’objet CCmdUI . |
CCmdUI
n’a pas de classe de base.
Lorsqu’un utilisateur de votre application extrait un menu, chaque élément de menu doit savoir s’il doit être affiché comme activé ou désactivé. La cible d’une commande de menu fournit ces informations en implémentant un gestionnaire de ON_UPDATE_COMMAND_UI. Pour chacun des objets d’interface utilisateur de commande de votre application, utilisez l’Assistant Classe ou la fenêtre Propriétés (en mode Classe) pour créer une entrée de carte de messages et un prototype de fonction pour chaque gestionnaire.
Lorsque le menu est extrait, l’infrastructure recherche et appelle chaque gestionnaire de ON_UPDATE_COMMAND_UI, chaque gestionnaire appelle CCmdUI
des fonctions membres telles que Enable
et Check
, et l’infrastructure affiche ensuite correctement chaque élément de menu.
Un élément de menu peut être remplacé par un bouton de barre de contrôle ou un autre objet d’interface utilisateur de commande sans modifier le code au sein du ON_UPDATE_COMMAND_UI
gestionnaire.
Le tableau suivant récapitule les fonctions membres de l’effet CCmdUI
sur différents éléments d’interface utilisateur de commande.
Élément d’interface utilisateur | Enable | SetCheck | SetRadio | SetText |
---|---|---|---|---|
Élément de menu | Active ou désactive | Vérifications ou décocheurs | Vérifications à l’aide d’un point | Définit le texte de l’élément |
Bouton de la barre d'outils | Active ou désactive | Sélectionne, désélectionne ou indéterminé | Identique à SetCheck |
(Non applicable) |
Volet Barre d’état | Rend le texte visible ou invisible | Définit la bordure contextuelle ou normale | Identique à SetCheck |
Définit le texte du volet |
Bouton normal dans CDialogBar |
Active ou désactive | Coche ou décocheur | Identique à SetCheck |
Définit le texte du bouton |
Contrôle normal dans CDialogBar |
Active ou désactive | (Non applicable) | (Non applicable) | Définit le texte de la fenêtre |
Pour plus d’informations sur l’utilisation de cette classe, consultez Comment mettre à jour des objets d’interface utilisateur.
CCmdUI
En-tête : afxwin.h
Appelez cette fonction membre pour indiquer au mécanisme de routage des commandes de continuer à router le message actuel vers le bas de la chaîne de gestionnaires.
void ContinueRouting();
Il s’agit d’une fonction membre avancée qui doit être utilisée conjointement avec un gestionnaire ON_COMMAND_EX qui retourne FALSE. Pour plus d’informations, consultez la note technique 6.
Appelez cette fonction membre pour activer ou désactiver l’élément d’interface utilisateur pour cette commande.
virtual void Enable(BOOL bOn = TRUE);
bOn
TRUE pour activer l’élément, FALSE pour le désactiver.
ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, &CMyDoc::OnUpdateFileSave)
void CMyDoc::OnUpdateFileSave(CCmdUI *pCmdUI)
{
// Enable the menu item if the file has been modified.
pCmdUI->Enable(m_bModified);
}
ID de l’élément de menu, du bouton de la barre d’outils ou d’un autre objet d’interface utilisateur représenté par l’objet CCmdUI
.
UINT m_nID;
Index de l’élément de menu, du bouton de barre d’outils ou d’un autre objet d’interface utilisateur représenté par l’objet CCmdUI
.
UINT m_nIndex;
Pointeur (de CMenu
type) vers le menu représenté par l’objet CCmdUI
.
CMenu* m_pMenu;
NULL si l’élément n’est pas un menu.
Pointeur (de CMenu
type) vers le sous-menu contenu représenté par l’objet CCmdUI
.
CMenu* m_pSubMenu;
NULL si l’élément n’est pas un menu. Si le sous-menu est une fenêtre contextuelle, m_nID contient l’ID du premier élément du menu contextuel. Pour plus d’informations, consultez la note technique 21.
Pointeur (de type CWnd
) vers l’objet fenêtre, tel qu’un outil ou une barre d’état, qui a envoyé la notification.
CWnd* m_pOther;
NULL si l’élément est un menu ou un autre CWnd
objet.
Appelez cette fonction membre pour définir l’élément d’interface utilisateur de cette commande sur l’état de vérification approprié.
virtual void SetCheck(int nCheck = 1);
nCheck
Spécifie l’état de vérification à définir. Si 0, décochez ; si 1, vérifie ; et si 2, définit indéterminé.
Cette fonction membre fonctionne pour les éléments de menu et les boutons de barre d’outils. L’état indéterminé s’applique uniquement aux boutons de barre d’outils.
Appelez cette fonction membre pour définir l’élément d’interface utilisateur de cette commande sur l’état de vérification approprié.
virtual void SetRadio(BOOL bOn = TRUE);
bOn
TRUE pour activer l’élément ; sinon FALSE.
Cette fonction membre fonctionne comme SetCheck
, sauf qu’elle opère sur des éléments d’interface utilisateur agissant dans le cadre d’un groupe radio. La désactivation des autres éléments du groupe n’est pas automatique, sauf si les éléments eux-mêmes conservent le comportement du groupe radio.
Appelez cette fonction membre pour définir le texte de l’élément d’interface utilisateur pour cette commande.
virtual void SetText(LPCTSTR lpszText);
lpszText
Pointeur vers une chaîne de texte.
void CMyRichEditView::OnUpdateLineNumber(CCmdUI *pCmdUI)
{
int nLine = GetRichEditCtrl().LineFromChar(-1) + 1;
CString string;
string.Format(_T("Line %d"), nLine);
pCmdUI->Enable(TRUE);
pCmdUI->SetText(string);
}