PDA

Visualizza la versione completa : [C++ con MFC] CDocument senza CView


Paulin
11-02-2008, 11:27
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).

Paulin
12-02-2008, 10:31
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:


// 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.

Loading