共用方式為


容器:用戶端項目通知

本文討論當伺服器應用程式修改用戶端應用程式檔中的專案時,MFC 架構所呼叫的可覆寫函式。

COleClientItem 定義數個可覆寫的函式,這些函式會針對元件應用程式的要求進行呼叫,這也稱為伺服器應用程式。 這些可覆寫專案通常可作為通知。 他們會通知容器應用程式各種事件,例如捲動、啟用或位置變更,以及使用者編輯或操作專案時所做的變更。

架構會透過 對 的呼叫 COleClientItem::OnChange 通知容器應用程式變更,這是需要實作的可覆寫函式。 這個受保護的函式會收到兩個引數。 第一個指定伺服器變更專案的原因:

通知 意義
OLE_CHANGED OLE 專案的外觀已變更。
OLE_SAVED 已儲存 OLE 專案。
OLE_CLOSED OLE 專案已經關閉。
OLE_RENAMED 包含 OLE 專案的伺服器檔已重新命名。
OLE_CHANGED_STATE OLE 專案已從某個狀態變更為另一個狀態。
OLE_CHANGED_ASPECT 架構已變更 OLE 專案的繪製層面。

這些值來自 AFXOLE.H 中定義的OLE_NOTIFICATION 列舉。

此函式的第二個引數會指定專案變更的方式,或已輸入的狀態:

第一個引數為 第二個引數
OLE_SAVED OLE_CLOSED 未使用 。
OLE_CHANGED 指定已變更之 OLE 專案的層面。
OLE_CHANGED_STATE 描述所輸入的狀態(emptyState、loadedState openState、 activeState activeUIState )。

如需用戶端專案可假設狀態的詳細資訊,請參閱 容器:用戶端專案狀態

架構會在專案啟動進行就地編輯時呼叫 COleClientItem::OnGetItemPosition 。 支援就地編輯的應用程式需要實作。 MFC 應用程式精靈提供基本實作,它會將專案的座標指派給 CRect 傳遞為 引數的物件 OnGetItemPosition

如果 OLE 專案的位置或大小在就地編輯期間變更,則必須更新專案位置和裁剪矩形的相關容器資訊,而且伺服器必須接收變更的相關資訊。 架構 COleClientItem::OnChangeItemPosition 會呼叫此用途。 MFC 應用程式精靈會提供呼叫基類函式的覆寫。 您應該編輯應用程式精靈為 COleClientItem 衍生類別寫入的函式,讓函式更新用戶端專案物件所保留的任何資訊。

另請參閱

容器
容器:用戶端項目狀態
COleClientItem::OnChangeItemPosition