Поделиться через


Класс CMFCKeyMapDialog

Класс CMFCKeyMapDialog поддерживает элемент управления, который сопоставляет команды с клавишами на клавиатуре.

Синтаксис

class CMFCKeyMapDialog : public CDialogEx

Участники

Открытые конструкторы

Имя Описание
CMFCKeyMapDialog::CMFCKeyMapDialog Формирует объект CMFCKeyMapDialog.

Открытые методы

Имя Описание
CMFCKeyMapDialog::D oModal Отображает диалоговое окно сопоставления клавиатуры.

Защищенные методы

Имя Описание
CMFCKeyMapDialog::FormatItem Вызывается платформой для создания строки, описывающей сопоставление ключей. По умолчанию строка содержит имя команды, используемые сочетания клавиш и описание сочетания клавиш.
CMFCKeyMapDialog::GetCommandKeys Извлекает строку, содержащую список сочетаний клавиш, связанных с указанной командой.
CMFCKeyMapDialog::OnInsertItem Вызывается платформой перед вставкой нового элемента в внутренний элемент управления списком, поддерживающий элемент управления сопоставления клавиатуры.
CMFCKeyMapDialog::OnPrintHeader Вызывается платформой для печати заголовка карты клавиатуры на новой странице.
CMFCKeyMapDialog::OnPrintItem Вызывается платформой для печати элемента сопоставления клавиатуры.
CMFCKeyMapDialog::OnSetColumns Вызывается платформой для задания подписей для столбцов во внутреннем элементе управления списка, поддерживающем элемент управления сопоставлением клавиатуры.
CMFCKeyMapDialog::P rintKeyMap Вызывается платформой, когда пользователь нажимает кнопку "Печать ".
CMFCKeyMapDialog::SetColumnsWidth Вызывается платформой для задания ширины столбцов во внутреннем элементе управления списка, поддерживающем элемент управления сопоставления клавиатуры.

Замечания

CMFCKeyMapDialog Используйте класс для реализации диалогового окна сопоставления с изменяемыми размерами клавиатуры. В диалоговом окне используется элемент управления представлением списка для отображения сочетаний клавиш и связанных с ними команд.

Чтобы использовать класс в приложении, передайте CMFCKeyMapDialog указатель на главное окно фрейма в качестве параметра конструктору CMFCKeyMapDialog . Затем вызовите DoModal метод для запуска модального диалогового окна.

Иерархия наследования

CObject

CCmdTarget

CWnd

CDialog

CDialogEx

CMFCKeyMapDialog

Требования

Заголовок: afxkeymapdialog.h

CMFCKeyMapDialog::CMFCKeyMapDialog

Формирует объект CMFCKeyMapDialog.

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

Параметры

pWndParentFrame
[in] Указатель на родительское окно CMFCKeyMapDialog объекта.

bEnablePrint
[in] ЗНАЧЕНИЕ TRUE, если можно распечатать список ключей акселератора; в противном случае — ЗНАЧЕНИЕ FALSE. Значение по умолчанию — FALSE.

Замечания

Пример

В следующем примере показано, как создать объект CMFCKeyMapDialog класса. Этот пример является частью примера демонстрации Visual Studio.

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

CMFCKeyMapDialog::D oModal

Отображает диалоговое окно сопоставления клавиатуры.

virtual INT_PTR DoModal();

Возвращаемое значение

Целое число со знаком, например IDOK или IDCANCEL, которое передается методу CDialog::EndDialog . Метод, в свою очередь, закрывает диалоговое окно. Дополнительные сведения см. в разделе CDialog::D oModal.

Замечания

Диалоговое окно сопоставления клавиатуры позволяет выбирать и назначать клавиши акселератора различным категориям команд. Кроме того, можно скопировать выбранные клавиши акселератора и их описание в буфер обмена.

CMFCKeyMapDialog::FormatItem

Вызывается платформой для создания строки, описывающей сопоставление ключей. По умолчанию строка содержит имя команды, используемые сочетания клавиш и описание сочетания клавиш.

virtual CString FormatItem(int nItem) const;

Параметры

nItem
[in] Отсчитываемый от нуля индекс элемента во внутреннем списке сопоставлений ключей.

Возвращаемое значение

CString Объект, содержащий отформатированный текст элемента.

Замечания

CMFCKeyMapDialog::GetCommandKeys

Извлекает строковое значение. Строка содержит список сочетаний клавиш, связанных с указанной командой.

virtual CString GetCommandKeys(UINT uiCmdID) const;

Параметры

uiCmdID
[in] Идентификатор команды.

Возвращаемое значение

Список сочетаний клавиш с запятой (';'), связанный с указанной командой.

Замечания

CMFCKeyMapDialog::OnInsertItem

Вызывается платформой перед вставкой нового элемента в внутренний элемент управления списком, поддерживающий элемент управления сопоставления клавиатуры.

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

Параметры

pButton
[in] Указатель на кнопку панели инструментов, которая используется для сопоставления сочетания клавиш клавиатуры с именем и описанием команды. Элемент карты ключей хранится во внутреннем элементе управления списком.

nItem
[in] Отсчитываемый от нуля индекс, указывающий, где вставить новый элемент карты ключей во внутренний элемент управления списком.

Замечания

CMFCKeyMapDialog::OnPrintHeader

Вызывается платформой для печати заголовка карты клавиатуры на новой странице.

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

Параметры

dc
[in] Контекст устройства для принтера.

nPage
[in] Номер страницы для печати.

cx
[in] Горизонтальное смещение заголовка в пикселях.

Возвращаемое значение

При успешном выполнении высота печатного текста. Дополнительные сведения см. в разделе "Возвращаемое значение" CDC ::D rawText.

Замечания

Платформа использует этот метод для печати карты клавиатуры. По умолчанию этот метод выводит номер страницы, имя приложения и заголовок диалогового окна.

CMFCKeyMapDialog::OnPrintItem

Вызывается платформой для печати элемента сопоставления клавиатуры.

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

Параметры

dc
[in] Контекст устройства принтера.

nItem
[in] Отсчитываемый от нуля индекс элемента для печати.

г
[in] Вертикальное смещение между верхней частью страницы и положением элемента.

cx
[in] Горизонтальное смещение между левой частью страницы и положением элемента.

bCalcHeight
[in] ЗНАЧЕНИЕ TRUE, чтобы вычислить оптимальную высоту для элемента печати; ЗНАЧЕНИЕ FALSE для усечения элемента печати, чтобы оно соответствовало пробелу по умолчанию.

Возвращаемое значение

Высота печатного элемента.

Замечания

Платформа вызывает этот метод для печати диалогового окна сопоставления ключей. По умолчанию этот метод выводит имя команды элемента, сочетания клавиш и описание команды.

CMFCKeyMapDialog::OnSetColumns

Вызывается платформой для задания подписей для столбцов во внутреннем элементе управления списка, поддерживающем элемент управления сопоставлением клавиатуры.

virtual void OnSetColumns();

Замечания

По умолчанию этот метод получает заголовки для столбцов из трех ресурсов. Заголовок столбца команды состоит из IDS_AFXBARRES_COMMAND, заголовок ключевого столбца состоит из IDS_AFXBARRES_KEYS, а заголовок столбца описания — из IDS_AFXBARRES_DESCRIPTION.

CMFCKeyMapDialog::P rintKeyMap

Вызывается платформой, когда пользователь нажимает кнопку "Печать ".

virtual void PrintKeyMap();

Замечания

Метод PrintKeyMap печатает карту ключей. Он инициирует новое задание печати, а затем многократно вызывает методы CMFCKeyMapDialog::OnPrintHeader и CMFCKeyMapDialog::OnPrintItem до печати всех сопоставлений ключей.

CMFCKeyMapDialog::SetColumnsWidth

Вызывается платформой для задания ширины столбцов во внутреннем элементе управления списка, поддерживающем элемент управления сопоставления клавиатуры.

virtual void SetColumnsWidth();

Замечания

Этот метод задает столбцы внутреннего элемента управления списка для ширины по умолчанию. Сначала вычисляется ширина столбца сочетаний клавиш. Затем для столбца команд выделяется одна треть оставшейся ширины, а остальные две трети выделены столбцу описания.

См. также

Диаграмма иерархии
Классы
Класс CKeyboardManager