共用方式為


CWnd::GetSystemMenu

允許應用程式存取複製和修改的 。

CMenu* GetSystemMenu(
   BOOL bRevert 
) const;

參數

  • bRevert
    指定要採取的動作。 如果 bRevert 是 GetSystemMenu 將控制代碼傳回給目前使用中的 的複本。 這個複本與控制項功能表一開始都是相同的,但可以進行修改。 如果 bRevert 是 GetSystemMenu 重設控制項功能表加入至預設狀態。 可以修改,則控制項功能表,如果有的話,終結之前。 傳回值在這個案例中未定義的。

傳回值

如果是, bRevert,識別功能表控制項的複本。 如果 bRevert 是 ,則傳回值為 undefined。

傳回的指標可能是暫時的,而且不應儲存供日後使用。

備註

不使用 GetSystemMenu 執行本身的複本控制功能表的所有視窗接收標準控制項功能表。

GetSystemMenu 成員函式所傳回的指標可與 CMenu::AppendMenuCMenu::InsertMenuCMenu::ModifyMenu 函式變更控制項的功能表。

控制項功能表原本包含項目會識別與各種 ID 值 (例如 SC_CLOSESC_MOVESC_SIZE。 在控制項中的功能表項目產生 WM_SYSCOMMAND 訊息。 所有預先定義之控制項的功能表項目會有 0xF000 ID 號碼大於。 如果應用程式將項目加入至控制項功能表,則會 F000 應該使用 ID 編號。

視窗會以標準控制項功能表可能會自動讓項目無法使用。 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