Udostępnij za pośrednictwem


Menu i zasoby: dodatki 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 AFXOLESV.RC, który jest wymagany do implementacji Microsoft Foundation Class Library. Ten plik znajduje się w podkatalogu MFC\Include.

Dodatki do 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 dodatkach do menu serwera.

Aby uzyskać przykład zmian w tabelach akceleratora, porównaj tabele akceleratora IDR_HIERSVRTYPE_SRVR_IP i IDR_HIERSVRTYPE_SRVR_EMB z IDR_MAINFRAME w pliku HIERSVR.RC zawartym 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 jedno dodanie do tabeli ciągów jest niezbędne 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:

Identyfikator Sznurek
IDP_OLE_INIT_FAILED Inicjowanie OLE nie powiodło się. Upewnij się, że biblioteki OLE są poprawną wersją.

Dodatki do miniserwera

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.

Zobacz także

Menu i zasoby (OLE)
Menu i zasoby: scalanie menu