Udostępnij przez


Kontenery: powiadomienia Client-Item

W tym artykule omówiono funkcje, które można zastąpić, które platforma MFC wywołuje, gdy aplikacje serwera modyfikują elementy w dokumencie aplikacji klienckiej.

COleClientItem definiuje kilka funkcji, które można zastąpić, które są wywoływane w odpowiedzi na żądania z aplikacji składnika, która jest również nazywana aplikacją serwera. Te opcje zmiany zwykle działają jako powiadomienia. Informują one aplikację kontenera o różnych zdarzeniach, takich jak przewijanie, aktywacja lub zmiana pozycji oraz zmiany wprowadzone przez użytkownika podczas edytowania lub manipulowania elementem w inny sposób.

Platforma powiadamia aplikację kontenera o zmianach, wywołując metodę COleClientItem::OnChange, funkcję, którą można przedefiniować, a której implementacja jest wymagana. Ta chroniona funkcja otrzymuje dwa argumenty. Pierwszy określa przyczynę zmiany elementu przez serwer:

Powiadomienie Znaczenie
OLE_CHANGED Wygląd elementu OLE został zmieniony.
OLE_SAVED Element OLE został zapisany.
OLE_CLOSED Element OLE został zamknięty.
OLE_RENAMED Nazwa dokumentu serwera zawierającego element OLE została zmieniona.
OLE_CHANGED_STATE Element OLE zmienił się z jednego stanu na inny.
OLE_CHANGED_ASPECT Aspekt rysowania elementu OLE został zmieniony przez framework.

Te wartości pochodzą z wyliczenia OLE_NOTIFICATION , które jest zdefiniowane w AFXOLE.H.

Drugi argument tej funkcji określa, w jaki sposób element uległ zmianie lub jaki stan został wprowadzony:

Gdy pierwszy argument to Drugi argument
OLE_SAVED lub OLE_CLOSED Nie jest używany.
OLE_CHANGED Określa aspekt elementu OLE, który uległ zmianie.
OLE_CHANGED_STATE Opisuje wprowadzony stan (emptyState, loadedState, openState, activeState lub activeUIState).

Aby uzyskać więcej informacji na temat stanów, które może przyjąć element klienta, zobacz Kontenery: Client-Item Stany.

Struktura wywołuje COleClientItem::OnGetItemPosition, gdy element jest aktywowany do edycji w miejscu. Implementacja jest wymagana w przypadku aplikacji, które obsługują edycję w miejscu. Kreator aplikacji MFC udostępnia podstawową implementację, która przypisuje współrzędne elementu do obiektu CRect, który jest przekazywany jako argument do OnGetItemPosition.

Jeśli pozycja lub rozmiar elementu OLE zmieni się podczas edycji w miejscu, informacje o pozycji tego elementu i jego prostokątach przycięcia muszą zostać zaktualizowane, a serwer musi otrzymać informację o zmianach. Framework wywołuje COleClientItem::OnChangeItemPosition w tym celu. Kreator aplikacji MFC udostępnia przesłonięcie, które wywołuje funkcję klasy bazowej. Należy edytować funkcję, którą kreator aplikacji zapisuje dla klasy pochodnej COleClientItem, tak aby funkcja aktualizowała wszelkie informacje przechowywane w obiekcie elementu klienta.

Zobacz także

Pojemniki
Kontenery: stany Client-Item
COleClientItem::OnChangeItemPosition