Menu i zasobów: scalanie Menu
W tym artykule szczegółowo kroki niezbędne do obsługi edycji i aktywacja w miejscu odpowiednio OLE dokumentu aplikacji.Aktywacja w miejscu stanowi wyzwanie dla kontenera i serwera aplikacji (składnik).Użytkownik pozostaje w tym samym oknie ramki (w ramach dokumentu kontenera), ale jest faktycznie uruchomiona inna aplikacja (serwer).Wymaga to koordynacji między zasobami aplikacji kontenera i serwera.
W tym artykule tematy obejmują:
Układy menu
Paski narzędzi i paski stanu
Układy menu
Pierwszym krokiem jest koordynacja układy menu.Aby uzyskać więcej informacji, zobacz Tworzenie Menu sekcji w Uwagi dotyczące programowania w Menu w Windows SDK.
Aplikacji kontenera, należy utworzyć nowe menu tylko wtedy, gdy elementy osadzone są uaktywniane w miejscu.Minimum w tym menu powinien składać się z następujących czynności w podanej kolejności:
Menu Plik jest identyczny z używane, gdy są otwarte pliki.(Zazwyczaj inne elementy menu są umieszczane przed następny element.)
Dwa kolejne separatory.
Menu Okno jest identyczny z używane, gdy są otwarte pliki (tylko wtedy, gdy aplikacja kontenera w aplikacji MDI).Niektóre aplikacje mogą mieć inne menu, takich jak menu Opcje należące do tej grupy, które pozostanie w menu po aktywowaniu elementu osadzonego w miejscu.
[!UWAGA]
Może to być inne menu, które wpływają na widoku dokumentu kontenera, takich jak powiększenie.Tych menu kontener pojawiają się między dwa separatory w zasobów tego menu.
Aplikacje serwera (składnik) należy także utworzyć nowe menu specjalnie dla aktywacji w miejscu.Powinno się podobnie jak menu, używane, gdy pliki są otwarte, ale bez elementów menu, takich jak plik i okna, które manipulować dokument serwera, a nie dane.Zazwyczaj to menu składa się z następujących czynności:
Edycja, menu, identyczny z używane, gdy są otwarte pliki.
Separator.
Edycja, menu, takich jak menu Pióro w przykładowej aplikacji Bazgroły obiektu.
Separator.
Menu Pomoc.
Na przykład Spójrz na układ niektóre menu w miejscu próbki dla kontenera i serwera.Aby na przykład jaśniejsze zostały usunięte szczegóły każdego elementu menu.Pojemnik w miejscu menu zawiera następujące wpisy:
IDR_CONTAINERTYPE_CNTR_IP MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&File C1"
MENUITEM SEPARATOR
POPUP "&Zoom C2"
MENUITEM SEPARATOR
POPUP "&Options C3"
POPUP "&Window C3"
END
Separatory kolejnych wskazują, gdzie pierwsza część menu serwera.Teraz wyglądać na serwer w miejscu menu:
IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Edit S1"
MENUITEM SEPARATOR
POPUP "&Format S2"
MENUITEM SEPARATOR
POPUP "&Help S3"
END
Separatory w tym polu wskazuje, dokąd druga grupa elementów menu kontener.Wynikowa struktura menu po aktywacji obiektu z tego serwera w miejsce wewnątrz tego kontenera wygląda następująco:
BEGIN
POPUP "&File C1"
POPUP "&Edit S1"
POPUP "&Zoom C2"
POPUP "&Format S2"
POPUP "&Options C3
POPUP "&Window C3"
POPUP "&Help S3"
END
Jak widać, separatory zostały zastąpione z różnych grup menu każdej aplikacji.
Akcelerator tabele związane z menu w miejscu powinny być również dostarczane przez aplikacji serwera.Kontener będzie włączać je do własnych tabel akceleratora.
Po aktywowaniu elementu osadzonego w miejscu ramach ładuje menu w miejscu.Następnie pyta aplikacji serwera w jego menu aktywacji w miejscu i wstawia go gdzie są separatory.Jest to, jak połączyć menu.Get menu z kontenera dla działających na położenie pliku i okna i uzyskać menu z serwera do pracy na elemencie.
Paski narzędzi i paski stanu
Aplikacje serwera należy utworzyć nowy pasek narzędzi i przechowywać jej bitmapy w oddzielnym pliku.Aplikacja aplikacje wizard–generated przechowywać tę mapę bitową w pliku o nazwie ITOOLBAR.BMP.Nowy pasek narzędzi zastępuje pasek narzędzi w aplikacji kontenera po serwera elementu w miejscu i powinna zawierają te same elementy, jak normalne paska narzędzi, jednak usunąć ikony reprezentujące elementy w menu Plik i okna.
Ten pasek narzędzi jest ładowany w sieci COleIPFrameWnd-klasy tworzony przez Kreatora aplikacji.Na pasku stanu jest obsługiwane przez aplikację kontenera.Aby uzyskać więcej informacji dotyczących wdrażania systemu Windows w miejsce ramki, zobacz serwerów: serwer wykonywania.