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