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


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

См. также

Ссылки

Класс CWnd

Диаграмма иерархии

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::ModifyMenu

GetSystemMenu