Menu e risorse: unione di menu

Questo articolo illustra in dettaglio i passaggi necessari per le applicazioni di documenti OLE per gestire correttamente la modifica visiva e l'attivazione sul posto. L'attivazione sul posto rappresenta una sfida per le applicazioni contenitore e server (componente). L'utente rimane nella stessa finestra cornice (all'interno del contesto del documento contenitore) ma esegue effettivamente un'altra applicazione (il server). Ciò richiede il coordinamento tra le risorse delle applicazioni contenitore e server.

Gli argomenti trattati in questo articolo includono:

Layout di menu

Il primo passaggio consiste nel coordinare i layout dei menu. Le applicazioni contenitore devono creare un nuovo menu da usare solo quando gli elementi incorporati vengono attivati sul posto. Come minimo, questo menu deve essere costituito da quanto segue, nell'ordine elencato:

  1. Menu File identico a quello usato quando i file sono aperti. In genere non vengono inserite altre voci di menu prima dell'elemento successivo.

  2. Due separatori consecutivi.

  3. Menu finestra identico a quello usato quando i file sono aperti (solo se l'applicazione contenitore in un'applicazione MDI). Alcune applicazioni possono avere altri menu, ad esempio un menu Opzioni, che appartiene a questo gruppo, che rimane nel menu quando viene attivato un elemento incorporato.

    Nota

    Potrebbero esserci altri menu che influiscono sulla visualizzazione del documento contenitore, ad esempio Zoom. Questi menu contenitore vengono visualizzati tra i due separatori in questa risorsa di menu.

Anche le applicazioni server (componente) devono creare un nuovo menu specifico per l'attivazione sul posto. Dovrebbe essere simile al menu usato quando i file sono aperti, ma senza voci di menu, ad esempio File e Finestra che modificano il documento del server anziché i dati. In genere, questo menu è costituito dai seguenti elementi:

  1. Menu Modifica identico a quello usato quando i file sono aperti.

  2. Separatore.

  3. Menu di modifica degli oggetti, ad esempio il menu Penna nell'applicazione di esempio Scribble.

  4. Separatore.

  5. Menu Guida.

Per un esempio, esaminare il layout di alcuni menu sul posto di esempio per un contenitore e un server. I dettagli di ogni voce di menu sono stati rimossi per rendere più chiaro l'esempio. Il menu sul posto del contenitore include le voci seguenti:

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

I separatori consecutivi indicano dove deve essere visualizzata la prima parte del menu del server. Esaminare ora il menu sul posto del server:

IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE
BEGIN
    POPUP "&Edit S1"
    MENUITEM SEPARATOR
    POPUP "&Format S2"
    MENUITEM SEPARATOR
    POPUP "&Help S3"
END

I separatori indicano qui dove deve andare il secondo gruppo di voci di menu del contenitore. La struttura di menu risultante quando un oggetto di questo server viene attivato sul posto all'interno di questo contenitore è simile al seguente:

BEGIN
    POPUP "&File C1"
    POPUP "&Edit S1"
    POPUP "&Zoom C2"
    POPUP "&Format S2"
    POPUP "&Options C3
    POPUP "&Window C3"
    POPUP "&Help S3"
END

Come si può notare, i separatori sono stati sostituiti con i diversi gruppi del menu di ogni applicazione.

Le tabelle degli acceleratori associate al menu sul posto devono essere fornite anche dall'applicazione server. Il contenitore li incorporerà nelle proprie tabelle dell'acceleratore.

Quando viene attivato un elemento incorporato, il framework carica il menu sul posto. Chiede quindi all'applicazione server il relativo menu per l'attivazione sul posto e lo inserisce dove si trovano i separatori. Questo è il modo in cui i menu si combinano. Si ottengono menu dal contenitore per operare sul posizionamento di file e finestre e si ottengono menu dal server per operare sull'elemento.

Barre degli strumenti e barre di stato

Le applicazioni server devono creare una nuova barra degli strumenti e archiviarne la bitmap in un file separato. Le applicazioni generate dalla procedura guidata dell'applicazione archiviano questa bitmap in un file denominato ITOOLBAR.BMP. La nuova barra degli strumenti sostituisce la barra degli strumenti dell'applicazione contenitore quando l'elemento del server viene attivato sul posto e deve contenere gli stessi elementi della barra degli strumenti normale, ma rimuovere le icone che rappresentano gli elementi nei menu File e Finestra.

Questa barra degli strumenti viene caricata nella COleIPFrameWndclasse derivata da , creata automaticamente dalla procedura guidata dell'applicazione. La barra di stato viene gestita dall'applicazione contenitore. Per altre informazioni sull'implementazione di finestre cornice sul posto, vedere Server: Implementazione di un server.

Vedi anche

Menu e risorse (OLE)
Attivazione
Server
Contenitori