Класс 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
метод для запуска модального диалогового окна.
Иерархия наследования
Требования
Заголовок: 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();
Замечания
Этот метод задает столбцы внутреннего элемента управления списка для ширины по умолчанию. Сначала вычисляется ширина столбца сочетаний клавиш. Затем для столбца команд выделяется одна треть оставшейся ширины, а остальные две трети выделены столбцу описания.