Menu i zasoby: scalanie menu
W tym artykule opisano kroki konieczne do aplikacji OLE dokumentu do obsługi edycji wizualnej i aktywacja w miejscu prawidłowo.Aktywacja w miejscu stanowi wyzwanie dla kontenera i serwera aplikacji (składnik).Użytkownik pozostaje w tym samym oknie ramki (w kontekście dokumentu kontenera), ale jest uruchomiona inna aplikacja (serwer).Wymaga koordynacji między zasobami kontenera i serwera aplikacji.
Omówione w tym artykule tematy obejmują:
Układy menu
Paski narzędzi i paski stanu
Układy menu
Pierwszym krokiem jest koordynowanie układy menu.Aby uzyskać więcej informacji, zobacz Tworzenie Menu w sekcji Uwagi dotyczące programowania w Menu w Windows SDK.
Aplikacji kontenera należy utworzyć nowe menu ma być używany tylko podczas osadzone elementy są aktywowane w miejscu.Na minimalnym poziomie w tym menu powinien składać się z następujących czynności w podanej kolejności:
Menu Plik jest identyczna z używany, gdy pliki są otwarte. (Zazwyczaj żadne inne elementy menu są umieszczane przed następny element.)
Dwa kolejne separatory.
Identyczna z używany, gdy pliki są otwarte okno menu (tylko w przypadku aplikacji kontenera w aplikacji MDI).Niektóre aplikacje mogą mieć inne menu, na przykład opcje menu, które należą do tej grupy, która pozostaje w menu po aktywowaniu elementu osadzonego w miejscu.
[!UWAGA]
Mogą istnieć inne menu, które wpływają na widok dokumentu kontenera, na przykład powiększenia.Tych menu kontener pojawiają się między dwa separatory w tym zasobie menu.
Aplikacje serwera (składnik) należy również utworzyć nowe menu specjalnie dla aktywacji w miejscu.Powinna ona jak menu używany, gdy pliki są otwarte, ale bez elementów menu, takich jak plik i okna, w którym manipulować dokumentu na serwerze zamiast danych.Zazwyczaj to menu składa się z następujących czynności:
Edycja, menu identyczna z używany, gdy pliki są otwarte.
Separator.
Edycja menu, na przykład menu Pióro w przykładowej aplikacji bazgrołów obiektu.
Separator.
Menu Pomoc.
Na przykład Spójrz na układ niektóre próbki w miejscu menu dla kontenera a serwerem.Aby przykłady były bardziej przejrzyste zostały usunięte szczegóły każdego elementu menu.Kontener 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.Spójrzmy teraz 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 tutaj wskazują, gdzie druga grupa elementów menu kontenera.Wynikowa struktura menu po uaktywnieniu 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 różnych grup menu każdej aplikacji.
Akcelerator tabele związane z menu w miejscu powinny być również dostarczane przez aplikację serwera.Kontener spowoduje włączenie ich do swoich własnych tabel akcelerator.
Po aktywowaniu elementu osadzonego w miejscu ramach ładuje menu w miejscu.Następnie prosi o aktywację na miejscu aplikacji serwera w jego menu i wstawia go gdzie są separatory.Jest to, jak połączyć menu.Menu można uzyskać z kontenera pozwalające na umieszczenie plików i okna, a otrzymasz 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 narzędzi aplikacji kontenera, gdy element Twój serwer jest aktywowany w miejscu i powinna zawierają te same elementy, co normalne paska narzędzi, ale usunąć ikony reprezentujące elementy w menu Plik i w oknie.
Ten pasek narzędzi jest ładowany w swojej COleIPFrameWnd-klasy, tworzone przez Kreatora konfiguracji aplikacji.Na pasku stanu jest obsługiwane przez aplikację kontenera.Aby uzyskać więcej informacji dotyczących wdrażania systemu windows w miejscu ramki, zobacz serwery: wdrażania serwera.