Menu i zasoby: dodatki do serwera
W tym artykule opisano zmiany, które należy wprowadzić w menu i innych zasobach w aplikacji serwera do edycji wizualnej (składnika). Aplikacja serwera wymaga wielu dodatków do struktury menu i innych zasobów, ponieważ można ją uruchomić w jednym z trzech trybów: autonomicznym, osadzonym lub w miejscu. Zgodnie z opisem w artykule Menu i zasoby (OLE) istnieje maksymalnie cztery zestawy menu. Wszystkie cztery są używane dla aplikacji pełnej serwera MDI, podczas gdy tylko trzy są używane dla miniserver. Kreator aplikacji utworzy układ menu niezbędny dla żądanego typu serwera. Niektóre dostosowania mogą być konieczne.
Jeśli nie używasz kreatora aplikacji, warto przyjrzeć się funkcji HIERSVR. RC, skrypt zasobu przykładowej aplikacji MFC HIERSVR, aby zobaczyć, jak te zmiany są implementowane.
Tematy omówione w tym artykule obejmują:
Dodatki menu serwera
Aplikacje serwera (składników) muszą mieć dodane zasoby menu w celu obsługi edycji wizualizacji OLE. Menu używane podczas uruchamiania aplikacji w trybie autonomicznym nie muszą być zmieniane, ale przed utworzeniem aplikacji należy dodać dwa nowe zasoby menu: jeden do obsługi aktywacji w miejscu i jeden do obsługi pełnego otwierania serwera. Oba zasoby menu są używane przez aplikacje pełnoserwerowe i miniserwerowe.
Aby obsługiwać aktywację w miejscu, należy utworzyć zasób menu, który jest bardzo podobny do zasobu menu używanego podczas uruchamiania w trybie autonomicznym. Różnica w tym menu polega na tym, że brakuje elementów pliku i okna (oraz innych elementów menu, które zajmują się aplikacją, a nie danych). Aplikacja kontenera dostarczy te elementy menu. Aby uzyskać więcej informacji na temat tej techniki scalania menu, zobacz artykuł Menu i zasoby: Scalanie menu.
Aby obsługiwać w pełni otwartą aktywację, należy utworzyć zasób menu niemal identyczny z zasobem menu używanym podczas uruchamiania w trybie autonomicznym. Jedyną modyfikacją tego zasobu menu jest to, że niektóre elementy są zmieniane w celu odzwierciedlenia faktu, że serwer działa na elemencie osadzonym w dokumencie złożonym.
Oprócz zmian wymienionych w tym artykule plik zasobu musi zawierać plik zasobów AFXOLESV. RC, który jest wymagany do implementacji biblioteki klas programu Microsoft Foundation. Ten plik znajduje się w podkatalogu MFC\Include.
Dodatki tabeli akceleratora aplikacji serwera
Do aplikacji serwera należy dodać dwa nowe zasoby tabeli akceleratora; odpowiadają one bezpośrednio nowym zasobom menu opisanym wcześniej. Pierwsza tabela akceleratora jest używana podczas aktywowania aplikacji serwera. Składa się on ze wszystkich wpisów w tabeli akceleratora widoku, z wyjątkiem tych powiązanych z menu Plik i Okno.
Druga tabela jest prawie dokładną kopią tabeli akceleratora widoku. Wszelkie zmiany równoległe wprowadzone w w pełni otwartym menu wymienionym w dodatku menu serwera.
Aby uzyskać przykład zmian w tabeli akceleratora, porównaj tabele IDR_HIERSVRTYPE_SRVR_IP i IDR_HIERSVRTYPE_SRVR_EMB akceleratora z IDR_MAINFRAME w zestawie HIERSVR. Plik RC zawarty w przykładzie MFC OLE HIERSVR. W tabeli wbudowanej brakuje akceleratorów plików i okien, a dokładne kopie znajdują się w tabeli osadzonej.
Dodatki tabeli ciągów dla aplikacji serwerowych
Tylko jedna tabela ciągów jest niezbędna w aplikacji serwera — ciąg oznaczający, że inicjowanie OLE nie powiodło się. Na przykład poniżej przedstawiono wpis string-table generowany przez kreatora aplikacji:
ID | Ciąg |
---|---|
IDP_OLE_INIT_FAILED | Inicjowanie OLE nie powiodło się. Upewnij się, że biblioteki OLE są poprawną wersją. |
Dodatki miniserwerów
Te same dodatki dotyczą miniserwerów, jak te wymienione powyżej dla pełnych serwerów. Ponieważ miniserwer nie może być uruchamiany w trybie autonomicznym, jego menu główne jest znacznie mniejsze. Menu główne utworzone przez kreatora aplikacji zawiera tylko menu Plik zawierające tylko elementy Zakończ i Informacje. Osadzone i wbudowane menu i akceleratory dla miniserwerów są takie same jak w przypadku pełnych serwerów.