Come utilizzare la classe CFormView nell'interfaccia a documento singolo (SDI) e applicazioni multiple document interface (MDI)

Traduzione articoli Traduzione articoli
Identificativo articolo: 98598 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Nota Microsoft Visual c ++ .NET (2002) supporta sia il modello di codice gestito fornito da Microsoft .NET Framework che il modello di codice non gestito nativo di Microsoft Windows. Le informazioni contenute in questo articolo si applicano solo al codice Visual C++ non gestito.

Nota Microsoft Visual c ++ 2005 supporta sia il modello di codice gestito fornito da Microsoft .NET Framework che il modello di codice non gestito nativo di Microsoft Windows.

Sommario

La classe CFormView fornisce un metodo pratico per posizionare i controlli in una visualizzazione che si basa su un modello di finestra di dialogo casella. La procedura generale per utilizzare un CFormView viene descritto nella documentazione per la classe e viene illustrata nelle applicazioni di esempio viene e CHKBOOK fornite con Microsoft Foundation Classes (MFC) versioni 2.x e versioni successive. Tuttavia, queste applicazioni dimostrano non che effettua la dimensioni iniziale della finestra cornice lo stesso esempio le dimensioni iniziali del modulo.

Nella sezione seguente sono elencati i passaggi necessari per supportare la creazione di un'interfaccia a documento singolo (SDI) o di applicazione di più document interface (MDI) in base a un CFormView, ridimensionamento finestra cornice iniziale intorno al form, modificare lo stile della cornice e chiusura di un documento MDI utilizzando un pulsante nel modulo.

Informazioni

I seguenti passaggi descrivono come creare una creazione guidata applicazione MFC applicazione utilizzando il CFormView come visualizzazione predefinita:
  1. Utilizzare la creazione guidata applicazione per generare un'applicazione SDI o MDI. Si inserisce un modello di finestra di dialogo casella con gli stili corretti impostato per il file di risorse del progetto.

    visual Studio 6.0 :

    Passaggio 6 della creazione guidata applicazione, selezionare la classe di visualizzazione. Nella casella combinata della classe base , è necessario selezionare CFormView per specificare CFormView come classe base.

    in visual Studio .NET o Visual Studio 2005 :

    In passaggio 1 di AppWizard di selezionare Classi generate . Nella casella combinata della classe base , è necessario selezionare CFormView per specificare CFormView come classe base.
  2. Eseguire l'override della funzione membro OnUpdate() e chiamare UpdateData() come indicato nella documentazione di CFormView, per aggiornare le variabili membro con i dati del documento corrente e per eseguire i dati della finestra di dialogo exchange (DDX).

    Nota : non è virtuale UpdateData e chiamare la classe base garantisce che la classe derivata DoDataExchange viene chiamato tramite il polimorfismo standard. Gli stati di documentazione CFormView per chiamare, non eseguire l'override UpdateData.
  3. Se si desidera impostare la dimensione iniziale della visualizzazione maschera, eseguire l'override della funzione OnInitialUpdate(). Il testo riportato di seguito fornisce ulteriori informazioni su questo passaggio, che è leggermente diverso in un'applicazione SDI o MDI.

Modifica della dimensione di un frame SDI principale a un oggetto CFormView

Per modificare le dimensioni del frame principale di un'applicazione SDI (che utilizza CFormView come la classe di visualizzazione) alla dimensione appropriata per il modulo progettato in App Studio, eseguire l'override della funzione OnInitialUpdate() nella classe derivata da CFormView, come illustrato di seguito:
      void CMyFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         GetParentFrame()->RecalcLayout();
         ResizeParentToFit(); // default argument is TRUE
      }
				
ResizeParentToFit() la funzione non impedisce di modificare dimensioni quando l'utente modifica le dimensioni del frame principale dell'applicazione del modulo (le barre di scorrimento vengono aggiunti automaticamente se necessario). Per modificare lo stile della finestra cornice padre di una visualizzazione modulo, è possibile eseguire l'override della funzione PreCreateWindow() nella classe CMainFrame generata dalla creazione guidata applicazione. Ad esempio, per rimuovere lo stile WS_THICKFRAME e impedire all'utente di modificare le dimensioni della finestra, dichiarare PreCreateWindow() in MainFrm.H e aggiungere il codice riportato di seguito per MainFrm.cpp:
      BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)
      {
         cs.style &= ~WS_THICKFRAME;
         return CFrameWnd::PreCreateWindow(cs);
      }
				

Modifica della dimensione di un frame del figlio MDI A un oggetto CFormView

Il processo di modificare le dimensioni di un frame del figlio MDI è simile a modificare le dimensioni di un frame principale per un'applicazione SDI, come spiegato in precedenza. Tuttavia, la chiamata RecalcLayout() non necessaria.

Per modificare le dimensioni di una cornice attorno a una visualizzazione form figlio MDI, eseguire l'override della funzione OnInitialUpdate() nella classe derivata da CFormView come segue:
      void CMDIFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         ResizeParentToFit(); // Default argument is TRUE.
      }
				
se l'applicazione esegue l'override dell'argomento predefinito per la funzione ResizeParentToFit(), essenzialmente le stesse conseguenze si verificano come per un'applicazione SDI, come spiegato in precedenza. Inoltre, la finestra figlio potrebbe essere troppo grande per la cornice principale MDI che lo contiene o per l'intero schermo.

Per modificare lo stile della cornice figlio MDI (ad esempio, per rimuovere lo stile WS_THICKFRAME in modo che l'utente non può modificare le dimensioni della finestra), è necessario derivare una classe di finestra figlio MDI ed eseguire l'override della funzione PreCreateWindow come illustrato nell'esempio precedente SDI.

Un form MDI con un pulsante di chiusura

Per creare un pulsante in un modulo che chiude il documento, aggiungere un gestore messaggi per il messaggio BN_CLICKED alla classe CFormView. Verificare che i pulsanti nella parte CFormView non gli identificatori IDOK o IDCANCEL predefinito. In tal caso, verranno creati voci non corrette nella mappa messaggi e funzioni non corrette per i pulsanti.

Dopo aver aggiunto il gestore dei messaggi, è possibile simulare il comando Chiudi dal menu File menu con il codice riportato di seguito:
      void CMyForm::OnClickedButton1()
      {
         PostMessage(WM_COMMAND, ID_FILE_CLOSE);
      }
				
questo metodo per chiudere un modulo viene chiesto di salvare il file se la funzione membro IsModified() associata al documento restituisce TRUE.

Proprietà

Identificativo articolo: 98598 - Ultima modifica: giovedì 5 gennaio 2006 - Revisione: 4.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Foundation Class Library 4.2 alle seguenti piattaforme
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.51
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
    • Microsoft Visual C++ .NET 2003 Standard Edition
    • Microsoft Visual C++ .NET 2002 Standard Edition
    • Microsoft Visual C++ 2005 Express Edition
Chiavi: 
kbmt kbdocview kbhowto kbmdi kbuidesign KB98598 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 98598
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com