Condividi tramite


Procedura dettagliata: Aggiornare l'applicazione Scribble MFC (parte 1)

In questa procedura dettagliata viene illustrato come modificare un'applicazione MFC esistente utilizzare l'interfaccia utente della barra multifunzione.Visual Studio supporta sia la barra multifunzione di Office 2007 che la barra multifunzione scenica di Windows 7.Per ulteriori informazioni sull'interfaccia utente della barra multifunzione, barre multifunzione vedere il sito Web MSDN.

In questa procedura dettagliata modificato l'esempio classico Scribble MFC 1,0 che consente di utilizzare il mouse per creare disegni a tratteggio.In questa parte della procedura dettagliata viene illustrato come modificare l'esempio Scribble in modo da visualizzare una barra multifunzione.parte 2 aggiunge altri pulsanti della barra multifunzione.

Prerequisiti

Esempi di Visual C++

Esempi di Visual C++

Sezioni

In questa parte della procedura dettagliata presenta le seguenti sezioni:

  • Sostituire le classi di base

  • Bitmap di aggiunta al progetto

  • Aggiunta di una risorsa della barra multifunzione al progetto

  • Creare un'istanza della barra multifunzione

  • Aggiunta della categoria della barra multifunzione

  • Impostare l'aspetto dell'applicazione

Sostituire le classi di base

Per convertire un'applicazione che supporta un menu in un'applicazione che supporta una barra multifunzione, è necessario derivare l'applicazione, la finestra cornice e le classi barre degli strumenti dalle classi di base aggiornate.(Si consiglia di non modificare l'esempio Scribble originale, invece, pulire il progetto Scribble, copiarlo in un'altra directory e modificare la copia.)

Sostituire le classi base dell'applicazione Scribble

  1. In scribble.cpp, verificare che CScribbleApp::InitInstance includere una chiamata a AfxOleInit.

  2. Aggiungere il codice seguente al file stdafx.h.

    #include <afxcontrolbars.h>
    
  3. In scribble.h, modificare la definizione della classe di CScribbleApp in modo da derivarla da Classe CWinAppEx.

    class CScribbleApp: public CWinAppEx
    
  4. Scribble 1,0 è stato scritto quando le applicazioni Windows stato utilizzato un file di inizializzazione () per salvare i dati delle preferenze utente.Anziché un file di inizializzazione, modificare Scribble per archiviare le preferenze utente nel Registro di sistema.Per impostare la chiave del Registro di sistema e la base, digitare il seguente codice in CScribbleApp::InitInstance dopo l'istruzione di LoadStdProfileSettings() .

    SetRegistryKey(_T("MFCNext\\Samples\\Scribble2"));
    SetRegistryBase(_T("Settings"));
    
  5. La cornice principale di un'applicazione (MDI) l'interfaccia a documenti multipli) non è derivata dalla classe di CMDIFrameWnd .Invece, è derivato dalla classe di CMDIFrameWndEx .

    Nei file di mainfrm.cpp e di mainfrm.h, sostituire tutti i riferimenti a CMDIFrameWnd con CMDIFrameWndEx.

  6. Nei file di childfrm.cpp e di childfrm.h, sostituire CMDIChildWnd con CMDIChildWndEx.

    In childfrm.file h, CSplitterWnd di sostituzione con CSplitterWndEx.

  7. Modificare le barre degli strumenti e le barre di stato per utilizzare le nuove classi MFC.

    Nel file di mainfrm.h:

    1. CToolBar di sostituzione con CMFCToolBar.

    2. CStatusBar di sostituzione con CMFCStatusBar.

  8. Nel file di mainfrm.cpp:

    1. m_wndToolBar.SetBarStyle di sostituzione con m_wndToolBar.SetPaneStyle

    2. m_wndToolBar.GetBarStyle di sostituzione con m_wndToolBar.GetPaneStyle

    3. DockControlBar(&m_wndToolBar) di sostituzione con DockPane(&m_wndToolBar)

  9. Nel file di ipframe.cpp, impostare come commento le tre righe di codice.

    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    pWndFrame->EnableDocking(CBRS_ALIGN_ANY);
    pWndFrame->DockPane(&m_wndToolBar);
    
  10. Se si desidera collegare in modo statico l'applicazione, aggiungere il codice seguente all'inizio del file di risorse di progetto (VCXPROJ).

    #include "afxribbon.rc"
    

    Il file di afxribbon.rc contiene le risorse richieste in fase di esecuzione.Creazione guidata applicazione MFC include questo file viene automaticamente quando si crea un'applicazione.

  11. Salvare le modifiche e quindi compilare ed eseguire l'applicazione.

[Sezioni]

Bitmap di aggiunta al progetto

I quattro passaggi successivi di questa procedura dettagliata richiedono risorse bitmap.È possibile ottenere le bitmap appropriate in diversi modi:

  • Utilizzare Editor di risorse per creare proprie bitmap.Oppure utilizzare gli editor di risorse per assemblare le bitmap dalle immagini portabili grafiche di rete (PNG) incluse in Visual Studio.Queste immagini sono nella directory di VS2008ImageLibrary.

    Tuttavia, l'interfaccia utente della barra multifunzione richiede che alcune bitmap supportino le immagini trasparenti.Le bitmap trasparenti utilizzano i pixel a 32 bit, dove 24 bit specificano le componenti rossa, verde e blu del colore e 8 bit definiscono un canale alfa che specifica la trasparenza del colore.Gli editor di risorse correnti possano visualizzare, ma non modificare le bitmap con i pixel a 32 bit.Pertanto, utilizzare un editor di immagini esterno anziché gli editor di risorse per modificare le bitmap trasparenti.

  • Copiare un file di risorse appropriato da un'altra applicazione al progetto e quindi importare le bitmap dal file.

In questa procedura dettagliata copia i file di risorse da un'applicazione nella directory degli esempi.

Per aggiungere le bitmap al progetto

  1. Esplora file di utilizzo per copiare i file gif dalla directory risorse (resl'esempio RibbonGadgets:

    1. Copia main.bmp al progetto Scribble.

    2. Copia filesmall.bmp e filelarge.bmp al progetto Scribble.

    3. Scegliere nuove copie dei file di filesmall.bmp e di filelarge.bmp, ma salvare copie nell'esempio RibbonGadgets.Rinominare le copie homesmall.bmp e homelarge.bmp e spostare le copie nel progetto Scribble.

    4. Fare una copia del file di toolbar.bmp, ma salvare la copia nell'esempio RibbonGadgets.Rinominare la copia panelicons.bmp e spostare la copia nel progetto Scribble.

  2. Importare la bitmap per un'applicazione MFC.In Visualizzazione risorse, fare doppio clic sul nodo *** scribble.rc *** , fare doppio clic sul nodo Bitmap quindi scegliere Aggiungi risorsa.Nella finestra di dialogo visualizzata, scegliere Importa.Passare a res la directory, selezionare il file di main.bmp quindi scegliere Apri.

    La bitmap di main.bmp contiene un'immagine 26x26.Impostare l'id della bitmap IDB_RIBBON_MAIN.

  3. Importare le bitmap dal menu File associato al pulsante dell'applicazione.

    1. Importare il file di filesmall.bmp, che contiene dieci immagini 16x16 (16x160).Poiché è necessario solo otto 16x16 immagini (16x128), utilizzare Visualizzazione risorse per modificare la larghezza della bitmap da 160 a 128.Impostare l'id della bitmap IDB_RIBBON_FILESMALL.

    2. Importare il filelarge.bmp, che contiene otto immagini 32x32 (32x256).Impostare l'id della bitmap IDB_RIBBON_FILELARGE.

  4. Importare le bitmap per le categorie e i pannelli della barra multifunzione.Ogni scheda sulla barra della barra multifunzione è una categoria ed è costituita da un'etichetta di testo e di un'immagine facoltativa.

    1. Importare la bitmap di homesmall.bmp, che contiene otto immagini 16x16 per piccole bitmap del pulsante.Impostare l'id della bitmap IDB_RIBBON_HOMESMALL.

    2. Importare la bitmap di homelarge.bmp, che contiene otto immagini 32x32 delle dimensioni del pulsante bitmap.Impostare l'id della bitmap IDB_RIBBON_HOMELARGE.

  5. Importare le bitmap per ridimensionare i pannelli della barra multifunzione.Queste bitmap, o le icone nel pannello, vengono utilizzate dopo un'operazione di ridimensionare se la barra multifunzione è troppo piccolo per visualizzare l'intero pannello.

    1. Importare la bitmap di panelicons.bmp, che contiene otto immagini 16x16.Nella finestra ProprietàEditor bitmap, regolare la larghezza della bitmap a 64 (16x64).Impostare l'id della bitmap IDB_PANEL_ICONS.

[Sezioni]

Aggiunta di una risorsa della barra multifunzione al progetto

Quando si converte un'applicazione che utilizza i menu a un'applicazione che utilizza una barra multifunzione, non è necessario rimuovere o disabilitare i menu esistenti.Invece, si crea una risorsa della barra multifunzione, aggiungere i pulsanti della barra multifunzione e quindi associare i nuovi pulsanti con le voci di menu esistenti.Sebbene i menu non sono più visibili, i messaggi della barra multifunzione sono indirizzati attraverso i menu.Inoltre, il menu continueranno a funzionare.

Una barra multifunzione è costituito pulsante di applicazione, ovvero il pulsante grande dal lato superiore sinistro della barra multifunzione e uno o più schede della categoria.Ogni scheda di categoria contiene uno o più riquadri che fungono da contenitori per i pulsanti e i controlli della barra multifunzione.Nella procedura seguente viene illustrato come creare una risorsa della barra multifunzione e personalizzare il pulsante dell'applicazione.

Per aggiungere una risorsa della barra multifunzione al progetto

  1. Scegliere dal menu Progetto , fare clic Aggiungi risorsa.

  2. Nella finestra di dialogo Aggiungi risorsa , Barra multifunzione quindi scegliere Nuovo.

    Visual Studio crea una risorsa della barra multifunzione e aperta nella visualizzazione progettazione.ID di risorsa della barra multifunzione è IDR_RIBBON1, visualizzata in Visualizzazione risorse.La barra multifunzione contiene una categoria e un pannello.

  3. È possibile personalizzare il pulsante di un'applicazione modificando le proprietà.ID messaggio di questo codice è già definito nel menu per Scribble 1,0.

  4. Nella visualizzazione progettazione, fare clic sul pulsante dell'applicazione per visualizzare le proprietà.Valori delle proprietà di modifica come segue: Immagine a IDB_RIBBON_MAIN, Messaggio di richiesta a File, Tasti a f, *** Immagini di grandi dimensioni *** a IDB_RIBBON_FILELARGEe *** Le immagini *** a IDB_RIBBON_FILESMALL.

  5. Le seguenti modifiche a creare un menu visualizzato quando l'utente fa clic sul pulsante dell'applicazione.Fare clic sui puntini di sospensione (*** … ***) accanto a *** elementi principali *** per aprire Editor elementi.

    1. Fare clic *** Aggiungere *** per aggiungere un pulsante.Didascalia Di modifica a &New, ID a ID_FILE_NEW, Immagine a 0, Immagine grande a 0.

    2. Fare clic *** Aggiungere *** per aggiungere un secondo pulsante.Modifica Didascalia a &Save, ID a ID_FILE_SAVE, Immagine a 2e Immagine grande a 2.

    3. Fare clic *** Aggiungere *** per aggiungere un terzo pulsante.Modifica Didascalia a Salvare i &As, ID a ID_FILE_SAVE_AS, Immagine a 3e Immagine grande a 3.

    4. Fare clic *** Aggiungere *** per aggiungere un quarto pulsante.Modifica Didascalia a &Print, ID a ID_FILE_PRINT, Immagine a 4e Immagine grande a 4.

    5. Modificare il tipo Elemento a Separatore quindi scegliere *** Aggiungere ***.

    6. Modificare il tipo Elemento a Pulsante.Fare clic *** Aggiungere *** per aggiungere un quinto pulsante.Modifica Didascalia a &Close, ID a ID_FILE_CLOSE, Immagine a 5e Immagine grande a 5.

  6. Le seguenti modifiche creare un sottomenu sotto il pulsante di stampa creato nel passaggio precedente.

    1. Fare clic sul pulsante Stampa , modificare il tipo Elemento a Etichettaquindi scegliere Inserisci.Didascalia Di modifica a L'anteprima di stampa il documento.

    2. Fare clic sul pulsante Stampa , modificare il tipo Elemento a Pulsantee fare clic Inserisci.Modifica Didascalia a &Print, ID a ID_FILE_PRINT, Immagine a 4e Immagine grande a 4.

    3. Fare clic sul pulsante Stampa quindi scegliere Inserisci per aggiungere un pulsante.Modifica Didascalia a stampa di &Quick, ID a ID_FILE_PRINT_DIRECT, Immagine a 7e Immagine grande a 7.

    4. Fare clic sul pulsante Stampa quindi scegliere Inserisci per aggiungere un altro pulsante.Modifica Didascalia a Premere Pre&view, ID a ID_FILE_PRINT_PREVIEW, Immagine a 6e Immagine grande a6.

    5. Dopo avere modificato *** elementi principali ***.Scegliere Chiudi per uscire Editor elementi.

  7. La modifica seguente viene creato un pulsante di uscita visualizzato nella parte inferiore del menu pulsante dell'applicazione.

    1. Nella finestra Proprietà , fare clic sui puntini di sospensione (*** … ***) accanto a Pulsante per aprire Editor elementi.

    2. Fare clic *** Aggiungere *** per aggiungere un pulsante.Didascalia Di modifica a E&xit, ID a ID_APP_EXIT, Immagine a8.

[Sezioni]

Creare un'istanza della barra multifunzione

I passaggi seguenti viene illustrato come creare un'istanza della barra multifunzione quando l'applicazione viene avviata.Per aggiungere una barra multifunzione a un'applicazione, dichiarare la barra multifunzione nel file di mainfrm.h.Quindi, nel file di mainfrm.cpp, scrivere il codice per caricare la risorsa della barra multifunzione.

Per creare un'istanza della barra multifunzione

  1. Nel file di mainfrm.h, aggiungere un membro dati alla sezione protetta di CMainFrame, la definizione della classe per la cornice principale.Questo membro rappresenta la barra multifunzione.

    // Ribbon bar for the application
    CMFCRibbonBar  m_wndRibbonBar;
    
  2. Nel file di mainfrm.cpp, aggiungere il seguente codice prima che l'istruzione finale di return alla fine della funzione di CMainFrame::OnCreate .In questo modo viene creata un'istanza della barra multifunzione.

    // Create the ribbon bar
    if (!m_wndRibbonBar.Create(this))
    {
    return -1;   //Failed to create ribbon bar
    }
    m_wndRibbonBar.LoadFromResource(IDR_RIBBON1);
    

[Sezioni]

Personalizzare la risorsa della barra multifunzione

Dopo avere creato il pulsante di applicazione, è possibile aggiungere elementi alla barra multifunzione.

[!NOTA]

In questa procedura dettagliata viene utilizzata la stessa icona del pannello per tutti i pannelli.Tuttavia, è possibile utilizzare altri valori di elenco immagini per visualizzare altre icone.

Per aggiungere una categoria e un pannello domestici di modifica

  1. Il programma Scribble richiede una sola categoria.Nella visualizzazione progettazione, fare clic Categoria per visualizzare le proprietà.Valori delle proprietà di modifica come segue: Didascalia a &Home, *** Immagini di grandi dimensioni *** a IDB_RIBBON_HOMELARGE, *** Le immagini *** a IDB_RIBBON_HOMESMALL.

  2. Ogni categoria della barra multifunzione è organizzata nei pannelli denominati.Ogni pannello contiene un insieme di controlli che eseguono le operazioni correlate.Questa categoria contiene un pannello.Scegliere Pannelloe quindi modificare Didascalia a modifica e a *** indice di immagine *** a 0.

  3. Nel pannello *** modifica *** , aggiungere un pulsante che è responsabile di cancellare il contenuto del documento.ID messaggio di questo pulsante è già stato definito nella risorsa menu di IDR_SCRIBBTYPE.Specificare Cancella tutto come testo del pulsante e l'indice della bitmap da decorare il pulsante.Aprire Casella degli strumentiquindi trascinare Pulsante al pannello *** modifica *** .Fare clic sul pulsante e quindi modificare Didascalia a Cancella tutto, ID a ID_EDIT_CLEAR_ALL, *** indice di immagine *** a 0, *** grande indice di immagine *** a 0.

  4. Salvare le modifiche e quindi compilare ed eseguire l'applicazione.L'applicazione Scribble deve essere visualizzati e deve includere una barra della barra multifunzione nella parte superiore della finestra anziché una barra dei menu.La barra multifunzione deve avere una categoria, Pagina inizialee Pagina iniziale deve disporre di un pannello, *** modifica ***.I pulsanti della barra multifunzione aggiunto devono essere associati ai gestori eventi esistenti e Apri, Chiudi, Salva, Stampae pulsanti Cancella tutto devono funzionare come previsto.

[Sezioni]

Impostare l'aspetto dell'applicazione

Un gestore visualizzazione è un oggetto globale che controlla il disegno per un'applicazione.Poiché l'applicazione originale Scribble utilizza lo stile dell'interfaccia utente (UI) di Office 2000, l'applicazione può sembrare obsoleta.È possibile reimpostare l'applicazione utilizzare il gestore visualizzazione di Office 2007 in modo che risulti simile a un'applicazione di Office 2007.

Per impostare l'aspetto dell'applicazione

  1. Nella funzione di CMainFrame::OnCreate , digitare il codice seguente per modificare il gestore visualizzazione e lo stile predefiniti.

    // Set the default manager to Office 2007 
    CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
    CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
    
  2. Salvare le modifiche e quindi compilare ed eseguire l'applicazione.L'interfaccia utente dell'applicazione deve essere simile all'interfaccia utente di Office 2007.

[Sezioni]

Passaggi successivi

Modificato l'esempio classico Scribble MFC 1,0 per utilizzare la finestra di progettazione della barra multifunzione.Ora andare a parte 2.

Vedere anche

Attività

Procedura dettagliata: Aggiornare l'applicazione Scribble MFC (parte 2)

Altre risorse

Procedure dettagliate (MFC)