CWnd::GetSystemMenu
Позволяет приложению получить доступ к меню элемента управления для копирования и изменения.
CMenu* GetSystemMenu(
BOOL bRevert
) const;
Параметры
- bRevert
Определяет действие, выполняемое. Если bRevertFALSE, то GetSystemMenu возвращает дескриптор копии меню элемента управления в настоящий момент используется. Эта копия исходной идентична меню элемента управления, но может быть изменена. Если bRevertTRUE, то GetSystemMenu сбросит меню элемента управления возвращается к состоянию по умолчанию. Предыдущая разрушена, возможно, измененный меню элемента управления, если таковое имеется. Возвращаемое значение не определено в данном случае.
Возвращаемое значение
Определяет копирование меню элемента управления, если bRevertFALSE. Если bRevertTRUE, то возвращаемое значение неопределено.
Возвращенный указатель может быть временным и не должен сохранить для последующего использования.
Заметки
Любое окно, которое не использует GetSystemMenu чтобы сделать свою собственную копию меню элемента управления получает стандартное меню элемента управления.
Указатель, возвращаемого функцией-членом GetSystemMenu можно использовать с функциями CMenu::AppendMenu, CMenu::InsertMenu или CMenu::ModifyMenu чтобы изменить меню элемента управления.
Меню элемента управления, изначально содержит элементы, указанные с разными значениями идентификаторов, как SC_CLOSE, SC_MOVE и SC_SIZE. Элементы в меню элемента управления приводят к формированию сообщений WM_SYSCOMMAND. Все стандартные элементы элемента управления- меню, имеют идентификаторы больше 0xF000. Если приложение добавляет элементы в меню элемента управления, то он должен использовать идентификаторы меньше F000.
Windows может автоматически создавать элементы недоступны на стандартном меню элемента управления. CWnd может выполнять свои собственные выделение или недоступность в ответ на сообщения WM_INITMENU, которые отправлены, прежде чем любое меню.
Пример
// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUT);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
Требования
Header: afxwin.h