容器:用戶端項目通知
本文討論當伺服器應用程式修改用戶端應用程式檔中的專案時,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
衍生類別寫入的函式,讓函式更新用戶端專案物件所保留的任何資訊。