Udostępnij za pośrednictwem


Kontenery: powiadomienia dotyczące elementów klienckich

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 przesłonięcia 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 za pomocą wywołania metody COleClientItem::OnChange, funkcji, 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 losowania elementu OLE został zmieniony przez strukturę.

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, w których można założyć element klienta, zobacz Kontenery: Stany elementów klienta.

Struktura wywołuje COleClientItem::OnGetItemPosition funkcję , 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 CRect obiektu, który jest przekazywany jako argument do OnGetItemPositionelementu .

Jeśli pozycja lub rozmiar elementu OLE zmieni się podczas edycji w miejscu, informacje o pozycji elementu i wycinkach elementu muszą zostać zaktualizowane, a serwer musi otrzymywać informacje o zmianach. Struktura wymaga COleClientItem::OnChangeItemPosition tego celu. Kreator aplikacji MFC udostępnia przesłonięcia, które wywołuje funkcję klasy bazowej. Należy edytować funkcję, którą kreator aplikacji zapisuje dla COleClientItemklasy -pochodnej, tak aby funkcja aktualizowała wszelkie informacje przechowywane przez obiekt elementu klienta.

Zobacz też

Kontenery
Kontenery: stany elementu klienckiego
COleClientItem::OnChangeItemPosition