Menu i zasoby (OLE)
W tej grupie artykułów opisano korzystanie z menu i zasobów w aplikacjach dokumentów OLE MFC.
Edytowanie wizualizacji OLE umieszcza dodatkowe wymagania w menu i innych zasobach udostępnianych przez aplikacje dokumentów OLE, ponieważ istnieje wiele trybów, w których można uruchamiać i używać aplikacji kontenera i serwera (składnika). Na przykład aplikacja z pełnym serwerem może działać w dowolnym z tych trzech trybów:
Samodzielny.
Aby edytować element w kontekście kontenera, należy go edytować.
Otwórz plik , aby edytować element poza kontekstem kontenera, często w osobnym oknie.
Wymaga to trzech oddzielnych układów menu, po jednym dla każdego możliwego trybu aplikacji. Tabele akceleratorów są również niezbędne dla każdego nowego trybu. Aplikacja kontenera może lub nie obsługuje aktywacji w miejscu; jeśli tak, potrzebuje nowej struktury menu i skojarzonych tabel akceleratora.
Aktywacja w miejscu wymaga, aby aplikacje kontenera i serwera musiały negocjować dla obszaru menu, paska narzędzi i paska stanu. Wszystkie zasoby muszą być zaprojektowane z myślą o tym. Artykuł Menu i zasoby: Scalanie menu zawiera szczegółowe omówienie tego tematu.
Ze względu na te problemy aplikacje dokumentów OLE utworzone za pomocą kreatora aplikacji mogą mieć maksymalnie cztery oddzielne menu i zasoby tabeli akceleratora. Są one używane z następujących powodów:
Nazwa zasobu | Używanie |
---|---|
IDR_MAINFRAME | Używany w aplikacji MDI, jeśli plik nie jest otwarty lub w aplikacji SDI niezależnie od otwartych plików. Jest to standardowe menu używane w aplikacjach innych niż OLE. |
<>typ projektu IDR_ | Używane w aplikacji MDI, jeśli pliki są otwarte. Używane, gdy aplikacja działa autonomicznie. Jest to standardowe menu używane w aplikacjach innych niż OLE. |
<IDR_project>TYPE_SRVR_IP | Używany przez serwer lub kontener, gdy obiekt jest otwarty. |
<TYPE_SRVR_EMB IDR_project> | Używany przez aplikację serwera, jeśli obiekt jest otwarty bez korzystania z aktywacji w miejscu. |
Każda z tych nazw zasobów reprezentuje menu i zazwyczaj tabelę akceleratora. Podobny schemat powinien być używany w aplikacjach MFC, które nie są tworzone za pomocą kreatora aplikacji.
W poniższych artykułach omówiono tematy związane z kontenerami, serwerami i scalanie menu niezbędne do zaimplementowania aktywacji w miejscu: