共用方式為


CCmdUI 類別

只有在衍生類別中的 CCmdTarget 處理常式內 ON_UPDATE_COMMAND_UI 使用。

語法

class CCmdUI

成員

公用方法

名稱 描述
CCmdUI::ContinueRouting 告知命令路由機制繼續將目前訊息路由傳送至處理常式鏈結。
CCmdUI::Enable 啟用或停用此命令的使用者介面專案。
CCmdUI::SetCheck 設定此命令之使用者介面專案的檢查狀態。
CCmdUI::SetRadio 如同成員函 SetCheck 式,但在無線電群組上運作。
CCmdUI::SetText 設定此命令之使用者介面專案的文字。

公用資料成員

名稱 描述
CCmdUI::m_nID 使用者介面物件的識別碼。
CCmdUI::m_nIndex 使用者介面物件的索引。
CCmdUI::m_pMenu 指向 物件所代表的 CCmdUI 功能表。
CCmdUI::m_pOther 指向傳送通知的視窗物件。
CCmdUI::m_pSubMenu 指向 物件所 CCmdUI 表示的自主子功能表。

備註

CCmdUI 沒有基類。

當您的應用程式使用者下拉式功能表時,每個功能表項目都必須知道它是否應該顯示為已啟用或停用。 功能表命令的目標會藉由實作ON_UPDATE_COMMAND_UI處理常式來提供這項資訊。 針對您應用程式中的每一個命令使用者介面物件,請使用 [類別精靈 ] 或 [屬性 ] 視窗 (在 [類別檢視 ] 中,為每個處理常式建立訊息對應專案和函式原型。

當功能表下拉時,架構會搜尋並呼叫每個ON_UPDATE_COMMAND_UI處理常式、每個處理常式都會呼叫 CCmdUI 成員函式,例如 EnableCheck ,然後架構會適當地顯示每個功能表項目。

功能表項目可以取代為控制項列按鈕或其他命令使用者介面物件,而不需變更處理常式內的 ON_UPDATE_COMMAND_UI 程式碼。

下表摘要說明對各種命令使用者介面專案的影響 CCmdUI 成員函式。

使用者介面專案 Enable SetCheck SetRadio SetText
功能表項目 啟用或停用 檢查或取消核取 使用點檢查 設定專案文字
工具列按鈕 啟用或停用 選取、取消選取或不確定 SetCheck 相同 (不適用)
狀態列窗格 讓文字可見或看不見 設定快顯或一般框線 SetCheck 相同 設定窗格文字
中的一般按鈕 CDialogBar 啟用或停用 核取或取消核取核取方塊 SetCheck 相同 設定按鈕文字
中的一般控制項 CDialogBar 啟用或停用 (不適用) (不適用) 設定視窗文字

如需使用此類別的詳細資訊,請參閱 如何更新使用者介面物件

繼承階層架構

CCmdUI

需求

標題: afxwin.h

CCmdUI::ContinueRouting

呼叫這個成員函式,告知命令路由機制繼續將目前的訊息路由傳送至處理常式鏈結。

void ContinueRouting();

備註

這是進階成員函式,應該與傳回 FALSE 的ON_COMMAND_EX處理常式搭配使用。 如需詳細資訊,請參閱 技術附注 6

CCmdUI::Enable

呼叫這個成員函式,以啟用或停用此命令的使用者介面專案。

virtual void Enable(BOOL bOn = TRUE);

參數


TRUE 表示啟用專案,FALSE 將其停用。

範例

ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, &CMyDoc::OnUpdateFileSave)

 

void CMyDoc::OnUpdateFileSave(CCmdUI *pCmdUI)
{
   // Enable the menu item if the file has been modified.
   pCmdUI->Enable(m_bModified);
}

CCmdUI::m_nID

由 物件表示 CCmdUI 的功能表項目、工具列按鈕或其他使用者介面物件的識別碼。

UINT m_nID;

CCmdUI::m_nIndex

由 物件表示 CCmdUI 的功能表項目、工具列按鈕或其他使用者介面物件的索引。

UINT m_nIndex;

CCmdUI::m_pMenu

物件所表示之功能表的 CCmdUI 指標(類型為 CMenu ) 。

CMenu* m_pMenu;

備註

如果專案不是功能表,則為 Null。

CCmdUI::m_pSubMenu

物件所 CCmdUI 表示之自主子功能表的指標(類型為 CMenu ) 。

CMenu* m_pSubMenu;

備註

如果專案不是功能表,則為 Null。 如果子功能表是快顯視窗, m_nID 包含快顯視窗中第一個專案的識別碼。 如需詳細資訊,請參閱 技術附注 21

CCmdUI::m_pOther

傳送通知之視窗物件的指標(類型 CWnd 為 ) ,例如工具或狀態列。

CWnd* m_pOther;

備註

如果專案是功能表或非 物件, CWnd 則為 Null。

CCmdUI::SetCheck

呼叫這個成員函式,將此命令的使用者介面專案設定為適當的檢查狀態。

virtual void SetCheck(int nCheck = 1);

參數

nCheck
指定要設定的檢查狀態。 如果為 0,則取消核取;如果為 1,則檢查;如果為 2,則設定不確定。

備註

此成員函式適用于功能表項目和工具列按鈕。 不確定狀態僅適用于工具列按鈕。

CCmdUI::SetRadio

呼叫這個成員函式,將此命令的使用者介面專案設定為適當的檢查狀態。

virtual void SetRadio(BOOL bOn = TRUE);

參數


TRUE 表示啟用專案;否則為 FALSE。

備註

此成員函式的運作方式類似 SetCheck ,不同之處在于它會在做為無線電群組一部分的使用者介面專案上運作。 除非專案本身維護單選群組行為,否則取消核取群組中的其他專案並不自動。

CCmdUI::SetText

呼叫這個成員函式,以設定此命令的使用者介面專案文字。

virtual void SetText(LPCTSTR lpszText);

參數

lpszText
文字字串的指標。

範例

void CMyRichEditView::OnUpdateLineNumber(CCmdUI *pCmdUI)
{
   int nLine = GetRichEditCtrl().LineFromChar(-1) + 1;

   CString string;
   string.Format(_T("Line %d"), nLine);
   pCmdUI->Enable(TRUE);
   pCmdUI->SetText(string);
}

另請參閱

MFC 範例 MDI
階層架構圖表
CCmdTarget 類別