假設使用者按下滑鼠,在 [檔案] 功能表中會產生WM_INITMENUPOPUP訊息。 架構之更新機制會全面更新 [檔案] 功能表上的所有項目之前的功能表下拉以便讓使用者可以看到它。
如果要執行這項操作,架構的路由更新沿著標準命令傳送快顯功能表中的所有功能表項目的命令。 命令目標上的路由,有機會可以更新任何功能表項目,藉由符合適當的訊息對應項目更新命令 (在表單的ON_UPDATE_COMMAND_UI) 以及呼叫"更新處理常式"函式。 因此,六個功能表項目] 功能表上,為六個更新命令會送出。 如果功能表項目的命令 ID 有更新處理常式,呼叫它來進行更新。 否則,架構,可檢查存在的處理常式的命令識別碼,並啟用或停用適當的功能表項目。
如果找不到架構ON_UPDATE_COMMAND_UI期間命令傳送的項目,會自動啟用使用者介面物件如果沒有ON_COMMAND項目位於相同的命令 id。 否則,它會停用使用者介面物件。 因此,若要確保已啟用 [使用者介面物件,提供物件產生的命令處理常式或為其提供更新處理常式。 請參閱主題中的 [圖使用者介面物件和命令 Id。
很可能要停用使用者介面物件的預設停用。 如需詳細資訊,請參閱 m_bAutoMenuEnable 類別成員的CFrameWnd在 MFC 參考手冊 》。
功能表初始化是在架構中,當應用程式接收發生自動WM_INITMENUPOPUP訊息。 在閒置迴圈中,架構會搜尋命令路由內的按鈕更新處理常式中一樣功能表一樣。