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 OnGetItemPosition
elementu .
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 COleClientItem
klasy -pochodnej, tak aby funkcja aktualizowała wszelkie informacje przechowywane przez obiekt elementu klienta.
Zobacz też
Kontenery
Kontenery: stany elementu klienckiego
COleClientItem::OnChangeItemPosition