CMFCKeyMapDialog Class
The CMFCKeyMapDialog
class supports a control that maps commands to keys on the keyboard.
Syntax
class CMFCKeyMapDialog : public CDialogEx
Members
Public Constructors
Name | Description |
---|---|
CMFCKeyMapDialog::CMFCKeyMapDialog | Constructs a CMFCKeyMapDialog object. |
Public Methods
Name | Description |
---|---|
CMFCKeyMapDialog::DoModal | Displays a keyboard mapping dialog box. |
Protected Methods
Name | Description |
---|---|
CMFCKeyMapDialog::FormatItem | Called by the framework to build a string that describes a key mapping. By default, the string contains the command name, the shortcut keys used, and the shortcut key description. |
CMFCKeyMapDialog::GetCommandKeys | Retrieves a string that contains a list of shortcut keys associated with the specified command. |
CMFCKeyMapDialog::OnInsertItem | Called by the framework before a new item is inserted into the internal list control that supports the keyboard mapping control. |
CMFCKeyMapDialog::OnPrintHeader | Called by the framework to print the header for the keyboard map on a new page. |
CMFCKeyMapDialog::OnPrintItem | Called by the framework to print a keyboard mapping item. |
CMFCKeyMapDialog::OnSetColumns | Called by the framework to set captions for the columns in the internal list control that supports the keyboard mapping control. |
CMFCKeyMapDialog::PrintKeyMap | Called by the framework when a user clicks the Print button. |
CMFCKeyMapDialog::SetColumnsWidth | Called by the framework to set the width of the columns in the internal list control that supports the keyboard mapping control. |
Remarks
Use the CMFCKeyMapDialog
class to implement a resizable keyboard mapping dialog box. The dialog box uses a list view control to display keyboard shortcuts and their associated commands.
To use the CMFCKeyMapDialog
class in an application, pass in a pointer to the main frame window as a parameter to the CMFCKeyMapDialog
constructor. Then call the DoModal
method to start a modal dialog box.
Inheritance Hierarchy
Requirements
Header: afxkeymapdialog.h
CMFCKeyMapDialog::CMFCKeyMapDialog
Constructs a CMFCKeyMapDialog
object.
CMFCKeyMapDialog(
CFrameWnd* pWndParentFrame,
BOOL bEnablePrint=FALSE);
Parameters
pWndParentFrame
[in] A pointer to the parent window of the CMFCKeyMapDialog
object.
bEnablePrint
[in] TRUE if the list of accelerator keys can be printed; otherwise, FALSE. The default is FALSE.
Remarks
Example
The following example demonstrates how to construct an object of the CMFCKeyMapDialog
class. This example is part of the Visual Studio Demo sample.
// this points to a CMainFrame class which extends the
// CMDIFrameWndEx class
CMFCKeyMapDialog dlg(this, TRUE /* Enable Print */);
CMFCKeyMapDialog::DoModal
Displays a keyboard mapping dialog box.
virtual INT_PTR DoModal();
Return Value
A signed integer, such as IDOK or IDCANCEL, that is passed to the CDialog::EndDialog method. The method, in turn, closes the dialog box. For more information, see CDialog::DoModal.
Remarks
The keyboard mapping dialog box enables you to select and assign accelerator keys to various categories of commands. In addition, you can copy the selected accelerator keys and their description to the clipboard.
CMFCKeyMapDialog::FormatItem
Called by the framework to build a string that describes a key mapping. By default, the string contains the command name, the shortcut keys used, and the shortcut key description.
virtual CString FormatItem(int nItem) const;
Parameters
nItem
[in] The zero-based index of an item in the internal list of key mappings.
Return Value
A CString
object that contains the formatted item text.
Remarks
CMFCKeyMapDialog::GetCommandKeys
Retrieves a string value. The string contains a list of shortcut keys that are associated with a specified command.
virtual CString GetCommandKeys(UINT uiCmdID) const;
Parameters
uiCmdID
[in] A command ID.
Return Value
A semicolon-delimited (';') list of shortcut keys that is associated with the specified command.
Remarks
CMFCKeyMapDialog::OnInsertItem
Called by the framework before a new item is inserted into an internal list control that supports the keyboard mapping control.
virtual void OnInsertItem(
CMFCToolBarButton* pButton,
int nItem);
Parameters
pButton
[in] A pointer to a toolbar button that is used to map a keyboard key combination to a command name and description. The key map item is stored in an internal list control.
nItem
[in] A zero-based index that specifies where to insert the new key map item in the internal list control.
Remarks
CMFCKeyMapDialog::OnPrintHeader
Called by the framework to print the header for the keyboard map on a new page.
virtual int OnPrintHeader(
CDC& dc,
int nPage,
int cx) const;
Parameters
dc
[in] The device context for the printer.
nPage
[in] The page number to print.
cx
[in] The horizontal offset of the header, in pixels.
Return Value
If successful, the height of the printed text. For more information, see the Return Value section of CDC::DrawText.
Remarks
The framework uses this method to print the keyboard map. By default, this method prints the page number, application name, and dialog box title.
CMFCKeyMapDialog::OnPrintItem
Called by the framework to print a keyboard mapping item.
virtual int OnPrintItem(
CDC& dc,
int nItem,
int y,
int cx,
BOOL bCalcHeight) const;
Parameters
dc
[in] The device context of the printer.
nItem
[in] The zero-based index of the item to print.
y
[in] The vertical offset between the top of the page and the position of the item.
cx
[in] The horizontal offset between the left of the page and the position of the item.
bCalcHeight
[in] TRUE to calculate the best height for the print item; FALSE to truncate the print item so that it fits the default space.
Return Value
The height of the printed item.
Remarks
The framework calls this method to print a key map dialog box item. By default, this method prints the item's command name, shortcut keys, and command description.
CMFCKeyMapDialog::OnSetColumns
Called by the framework to set captions for the columns in the internal list control that supports the keyboard mapping control.
virtual void OnSetColumns();
Remarks
By default, this method obtains the captions for the columns from three resources. The command column caption is from IDS_AFXBARRES_COMMAND, the key column caption is from IDS_AFXBARRES_KEYS, and the description column caption is from IDS_AFXBARRES_DESCRIPTION.
CMFCKeyMapDialog::PrintKeyMap
Called by the framework when a user clicks the Print button.
virtual void PrintKeyMap();
Remarks
The PrintKeyMap
method prints the key map. It initiates a new print job and then repeatedly calls the CMFCKeyMapDialog::OnPrintHeader and CMFCKeyMapDialog::OnPrintItem methods until all the key mappings are printed.
CMFCKeyMapDialog::SetColumnsWidth
Called by the framework to set the width of the columns in the internal list control that supports the keyboard mapping control.
virtual void SetColumnsWidth();
Remarks
This method sets the internal list control's columns to default widths. First, the width of the shortcut keys column is calculated. Then one-third of the remaining width is allocated to the command column and the remaining two-thirds is allocated to the description column.