Clase CCmdUI

Se utiliza solo dentro de un controlador ON_UPDATE_COMMAND_UI en una clase derivada de CCmdTarget.

Sintaxis

class CCmdUI

Miembros

Métodos públicos

Nombre Descripción
CCmdUI::ContinueRouting Indica al mecanismo de enrutamiento de comandos que siga enrutando el mensaje actual hacia abajo en la cadena de controladores.
CCmdUI::Enable Habilita o deshabilita el elemento de interfaz de usuario para este comando.
CCmdUI::SetCheck Establece el estado de comprobación del elemento de interfaz de usuario para este comando.
CCmdUI::SetRadio Como la función miembro SetCheck, pero opera en grupos de radio.
CCmdUI::SetText Establece el texto del elemento de interfaz de usuario para este comando.

Miembros de datos públicos

Nombre Descripción
CCmdUI::m_nID Identificador del objeto de interfaz de usuario.
CCmdUI::m_nIndex Índice del objeto de interfaz de usuario.
CCmdUI::m_pMenu Apunta al menú que el objeto CCmdUI representa.
CCmdUI::m_pOther Apunta al objeto de ventana que envió la notificación.
CCmdUI::m_pSubMenu Apunta al submenú contenido que el objeto CCmdUI representa.

Comentarios

CCmdUI no tiene una clase base.

Cuando un usuario de la aplicación hace clic en un menú desplegable, cada elemento de menú debe saber si tiene que mostrarse como habilitado o deshabilitado. El destino de un comando de menú proporciona esta información mediante la implementación de un controlador ON_UPDATE_COMMAND_UI. Para cada uno de los objetos de interfaz de usuario de comandos de la aplicación, use el Asistente para clases o la ventana Propiedades (en la Vista de clases) para crear una entrada de asignación de mensajes y un prototipo de función para cada controlador.

Cuando se hace clic en el menú desplegable, el marco busca y llama a cada controlador ON_UPDATE_COMMAND_UI, cada controlador llama a funciones miembro CCmdUI como Enable y Check y, luego, el marco muestra cada elemento de menú correspondiente.

Un elemento de menú se puede reemplazar por un botón de la barra de control u otro objeto de interfaz de usuario de comandos sin cambiar el código dentro del controlador ON_UPDATE_COMMAND_UI.

En la tabla siguiente, se resume el efecto que las funciones miembro de CCmdUI tienen en varios elementos de interfaz de usuario de comandos.

Elemento de interfaz Habilitar SetCheck SetRadio SetText
Elemento de menú Habilita o deshabilita Activa o desactiva Comprueba con un punto Establece el texto del elemento
Botón de la barra de herramientas Habilita o deshabilita Selecciona, anula la selección o sin determinar Igual que SetCheck. (No aplicable)
Panel de la barra de estado Hace que el texto sea visible o invisible Establece el borde emergente o normal Igual que SetCheck. Establece el texto del panel
Botón normal en CDialogBar Habilita o deshabilita Activa o desactiva la casilla Igual que SetCheck. Establece el texto del botón
Control normal en CDialogBar Habilita o deshabilita (No aplicable) (No aplicable) Establece el texto de la ventana

Para más información sobre el uso de esta clase, consulte cómo actualizar los objetos de interfaz de usuario.

Jerarquía de herencia

CCmdUI

Requisitos

Encabezado: afxwin.h

CCmdUI::ContinueRouting

Llame a esta función miembro para indicar al mecanismo de enrutamiento de comandos que siga enrutando el mensaje actual hacia abajo en la cadena de controladores.

void ContinueRouting();

Comentarios

Se trata de una función miembro avanzada que se debe usar junto con un controlador ON_COMMAND_EX que devuelve FALSE. Para más información, consulte la Nota técnica 6.

CCmdUI::Enable

Llame a esta función miembro para habilitar o deshabilitar el elemento de interfaz de usuario para este comando.

virtual void Enable(BOOL bOn = TRUE);

Parámetros

bOn
TRUE para habilitar el elemento, FALSE para deshabilitarlo.

Ejemplo

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);
}

CCmdUI::m_nID

Identificador del elemento de menú, el botón de la barra de herramientas u otro objeto de interfaz de usuario que el objeto CCmdUI representa.

UINT m_nID;

CCmdUI::m_nIndex

Índice del elemento de menú, el botón de la barra de herramientas u otro objeto de interfaz de usuario que el objeto CCmdUI representa.

UINT m_nIndex;

CCmdUI::m_pMenu

Puntero (de tipo CMenu) al menú que el objeto CCmdUI representa.

CMenu* m_pMenu;

Comentarios

NULL si el elemento no es un menú.

CCmdUI::m_pSubMenu

Puntero (de tipo CMenu) al submenú contenido que el objeto CCmdUI representa.

CMenu* m_pSubMenu;

Comentarios

NULL si el elemento no es un menú. Si el submenú es un elemento emergente, m_nID contiene el identificador del primer elemento del menú emergente. Para más información, consulte la Nota técnica 21.

CCmdUI::m_pOther

Puntero (de tipo CWnd) al objeto de ventana, como una barra de estado o herramientas, que envió la notificación.

CWnd* m_pOther;

Comentarios

NULL si el elemento es un menú o un objeto que no es CWnd.

CCmdUI::SetCheck

Llame a esta función miembro para establecer el elemento de interfaz de usuario de este comando en el estado de comprobación adecuado.

virtual void SetCheck(int nCheck = 1);

Parámetros

nCheck
Especifica el estado de comprobación que se va a establecer. Si es 0, lo desactiva; si es 1, lo activa; si es 2, lo establece como indeterminado.

Comentarios

Esta función miembro funciona para los elementos de menú y los botones de la barra de herramientas. El estado indeterminado solo se aplica a los botones de la barra de herramientas.

CCmdUI::SetRadio

Llame a esta función miembro para establecer el elemento de interfaz de usuario de este comando en el estado de comprobación adecuado.

virtual void SetRadio(BOOL bOn = TRUE);

Parámetros

bOn
TRUE para habilitar el elemento; de lo contrario, FALSE.

Comentarios

Esta función miembro funciona como SetCheck, excepto en que funciona en elementos de interfaz de usuario que actúan como parte de un grupo de radio. La desactivación de los demás elementos del grupo no es automática, a menos que los propios elementos mantengan el comportamiento del grupo de radio.

CCmdUI::SetText

Llame a esta función miembro para establecer el texto del elemento de interfaz de datos para este comando.

virtual void SetText(LPCTSTR lpszText);

Parámetros

lpszText
Puntero a una cadena de texto.

Ejemplo

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);
}

Consulte también

Ejemplo MDI de MFC
Gráfico de jerarquías
CCmdTarget (clase)