Compartir a través de


Clase CMFCKeyMapDialog

La clase CMFCKeyMapDialog admite un control que asigna comandos a teclas del teclado.

Sintaxis

class CMFCKeyMapDialog : public CDialogEx

Miembros

Constructores públicos

Nombre Descripción
CMFCKeyMapDialog::CMFCKeyMapDialog Construye un objeto CMFCKeyMapDialog.

Métodos públicos

Nombre Descripción
CMFCKeyMapDialog::DoModal Muestra un cuadro de diálogo de asignación de teclado.

Métodos protegidos

Nombre Descripción
CMFCKeyMapDialog::FormatItem Lo llama el marco para crear una cadena que describe una asignación de teclas. De forma predeterminada, la cadena contiene el nombre del comando, las teclas de método abreviado usadas y la descripción de la tecla de método abreviado.
CMFCKeyMapDialog::GetCommandKeys Recupera una cadena que contiene una lista de teclas de método abreviado asociadas al comando especificado.
CMFCKeyMapDialog::OnInsertItem Lo llama el marco antes de insertar un nuevo elemento en el control de lista interna que admite el control de asignación de teclado.
CMFCKeyMapDialog::OnPrintHeader Lo llama el marco para imprimir el encabezado del mapa de teclado en una página nueva.
CMFCKeyMapDialog::OnPrintItem Lo llama el marco para imprimir un elemento de asignación de teclado.
CMFCKeyMapDialog::OnSetColumns Lo llama el marco para establecer descripciones para las columnas del control de lista interna que admite el control de asignación de teclado.
CMFCKeyMapDialog::PrintKeyMap Lo llama el marco cuando el usuario hace clic en el botón Imprimir.
CMFCKeyMapDialog::SetColumnsWidth Lo llama el marco para establecer el ancho de las columnas en el control de lista interna que admite el control de asignación de teclado.

Comentarios

Use la clase CMFCKeyMapDialog para implementar un cuadro de diálogo de asignación de teclado redimensionable. El cuadro de diálogo usa un control de vista de lista para mostrar los métodos abreviados de teclado y sus comandos asociados.

Para usar la clase CMFCKeyMapDialog en una aplicación, pase un puntero a la ventana de marco principal como parámetro al constructor CMFCKeyMapDialog. A continuación, llame al método DoModal para iniciar un cuadro de diálogo modal.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

Cdialog

CDialogEx

CMFCKeyMapDialog

Requisitos

Encabezado: afxkeymapdialog.h

CMFCKeyMapDialog::CMFCKeyMapDialog

Construye un objeto CMFCKeyMapDialog.

CMFCKeyMapDialog(
    CFrameWnd* pWndParentFrame,
    BOOL bEnablePrint=FALSE);

Parámetros

pWndParentFrame
[Entrada] El valor de este parámetro se corresponde con un puntero que apunta a la ventana primaria del objeto CMFCKeyMapDialog.

bEnablePrint
[Entrada] TRUE si se puede imprimir la lista de teclas de aceleración; de lo contrario, FALSE. El valor predeterminado es FALSE.

Comentarios

Ejemplo

En el ejemplo siguiente se muestra cómo construir un objeto de la clase CMFCKeyMapDialog. Este ejemplo forma parte del ejemplo de demostración de Visual Studio.

// this points to a CMainFrame class which extends the 
// CMDIFrameWndEx class
CMFCKeyMapDialog dlg(this, TRUE /* Enable Print */);

CMFCKeyMapDialog::DoModal

Muestra un cuadro de diálogo de asignación de teclado.

virtual INT_PTR DoModal();

Valor devuelto

Entero con signo, como IDOK o IDCANCEL, que se pasa al método CDialog::EndDialog. A su vez, el método cierra el cuadro de diálogo. Para más información, consulte CDialog::DoModal.

Comentarios

El cuadro de diálogo de asignación de teclado permite seleccionar y asignar teclas de aceleración a varias categorías de comandos. Además, puede copiar las teclas de aceleración seleccionadas y su descripción en el portapapeles.

CMFCKeyMapDialog::FormatItem

Lo llama el marco para crear una cadena que describe una asignación de teclas. De forma predeterminada, la cadena contiene el nombre del comando, las teclas de método abreviado usadas y la descripción de la tecla de método abreviado.

virtual CString FormatItem(int nItem) const;

Parámetros

nItem
[Entrada] Índice de base cero de un elemento de la lista interna de asignaciones de teclas.

Valor devuelto

Objeto CString que contiene el texto del elemento con formato.

Comentarios

CMFCKeyMapDialog::GetCommandKeys

Recupera un valor de cadena. La cadena contiene una lista de teclas de método abreviado asociadas a un comando especificado.

virtual CString GetCommandKeys(UINT uiCmdID) const;

Parámetros

uiCmdID
[in] Identificador de comando.

Valor devuelto

Lista delimitada por (';') punto y coma de teclas de método abreviado asociadas al comando especificado.

Comentarios

CMFCKeyMapDialog::OnInsertItem

Lo llama el marco antes de insertar un nuevo elemento en un control de lista interna que admite el control de asignación de teclado.

virtual void OnInsertItem(
    CMFCToolBarButton* pButton,
    int nItem);

Parámetros

pButton
[Entrada] Puntero que apunta a un botón de la barra de herramientas que se usa para asignar una combinación de teclas de teclado a un nombre de comando y una descripción. El elemento de asignación de teclas se almacena en un control de lista interna.

nItem
[Entrada] Índice de base cero que especifica dónde insertar el nuevo elemento de asignación de teclas en el control de lista interna.

Comentarios

CMFCKeyMapDialog::OnPrintHeader

Lo llama el marco para imprimir el encabezado del mapa de teclado en una página nueva.

virtual int OnPrintHeader(
    CDC& dc,
    int nPage,
    int cx) const;

Parámetros

dc
[Entrada] Contexto del dispositivo de la impresora.

nPage
[Entrada] El número de página que se debe imprimir.

cx
[Entrada] Desplazamiento horizontal del encabezado, en píxeles.

Valor devuelto

Si se ejecuta correctamente, el alto del texto impreso. Para más información, consulte la sección Valor devuelto de CDC::DrawText.

Comentarios

El marco usa este método para imprimir el mapa de teclado. De forma predeterminada, este método imprime el número de página, el nombre de la aplicación y el título del cuadro de diálogo.

CMFCKeyMapDialog::OnPrintItem

Lo llama el marco para imprimir un elemento de asignación de teclado.

virtual int OnPrintItem(
    CDC& dc,
    int nItem,
    int y,
    int cx,
    BOOL bCalcHeight) const;

Parámetros

dc
[Entrada] Contexto del dispositivo de la impresora.

nItem
[Entrada] Índice de base cero del elemento que se va a imprimir.

y
[Entrada] Desplazamiento vertical entre la parte superior de la página y la posición del elemento.

cx
[Entrada] Desplazamiento horizontal entre la izquierda de la página y la posición del elemento.

bCalcHeight
[Entrada] TRUE para calcular el alto adecuado para el elemento de impresión; FALSE para truncar el elemento de impresión para que se ajuste al espacio predeterminado.

Valor devuelto

El alto del elemento impreso.

Comentarios

El marco llama a este método para imprimir un elemento del cuadro de diálogo de asignación de teclas. De forma predeterminada, este método imprime el nombre de comando, las teclas de método abreviado y la descripción del comando del elemento.

CMFCKeyMapDialog::OnSetColumns

Lo llama el marco para establecer descripciones para las columnas del control de lista interna que admite el control de asignación de teclado.

virtual void OnSetColumns();

Comentarios

De forma predeterminada, este método obtiene los títulos de las columnas de tres recursos. El título de columna de comando procede de IDS_AFXBARRES_COMMAND, el título de columna de clave procede de IDS_AFXBARRES_KEYS y el título de columna de descripción procede de IDS_AFXBARRES_DESCRIPTION.

CMFCKeyMapDialog::PrintKeyMap

Lo llama el marco cuando el usuario hace clic en el botón Imprimir.

virtual void PrintKeyMap();

Comentarios

El método PrintKeyMap imprime la asignación de teclas. Inicia un nuevo trabajo de impresión y, luego, llama repetidamente a los métodos CMFCKeyMapDialog::OnPrintHeader y CMFCKeyMapDialog::OnPrintItem hasta que se imprimen todas las asignaciones de teclas.

CMFCKeyMapDialog::SetColumnsWidth

Lo llama el marco para establecer el ancho de las columnas en el control de lista interna que admite el control de asignación de teclado.

virtual void SetColumnsWidth();

Comentarios

Este método establece las columnas del control de lista interna en anchos predeterminados. En primer lugar, se calcula el ancho de la columna de teclas de método abreviado. A continuación, se asigna un tercio del ancho restante a la columna de comandos y los dos tercios restantes se asignan a la columna de descripción.

Consulte también

Gráfico de jerarquías
Clases
CKeyboardManager (clase)