Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286

    [C++ con MFC] CDocument senza CView

    Per essere breve, vorrei creare un progetto MFC senza supporto Doc/View, ma vorrei però aggiungere una classe derivata da CDocument per sfruttare i vantaggi nella gestione di un documento associato ad un archivio, compresi i vantaggi della sua serializzazione, senza però associare il documento ad alcuna vista.

    Dunque, per ora vorrei capire se è possibile adoperare CDocument senza CView. Poi se la risposta è positiva potremo eventualmente approfondire il discorso (io per ora ne ho solo una molto vaga idea).

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    Alla fine sono riuscito a realizzare il progetto nel modo più semplice possibile, dopo essermi inutilmente perso a sovrascrivere la classe CDocManager.

    Dopo aver aggiunto una classe derivata da CDocument ho aggiunto i gestori dei messaggi standard ID_FILE_NEW e ID_FILE_OPEN nella classe dell'applicazione derivata da CWinApp:

    codice:
    // CMyApp
    
    BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
    	// Standard file based document commands
    	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
    	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
    END_MESSAGE_MAP()
    Il framework eseguirà ogni altra operazione in modo automatico, ad esempio scegliendo la voce New dal menu File verrà automaticamente chiamata la funzione CMyDoc :: OnNewDocument(), scegliendo invece la voce Open verrà automaticamente aperta dal framework la OpenFileDialog (probabilmente ad opera di CDocManager :: DoPromtFileName() ) che ritornando con il percorso e nome del file chiama in modo automatico CMyDoc :: Serialize(CArchive& ar)

    All'interno di Serialize posso gestire il mio archivio ed i suoi contenuti anche senza che questi siano visualizzati su di una qualche vista.


    Ciao a tutti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.