Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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