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

    VisualC++ (File in MFC)

    Faccio un po' fatica a muovermi in mezzo a questo ambiente di sviluppo. Con il codice che segue riesco ad aprire e leggere un file da un percorso predefinito e poi sovrascrivo il contenuto del file:

    codice:
    CApriFileApp::CApriFileApp()
    {
    
    CFile mioFile;
    char*  NomeFile = "C:\\test\\mioFile.txt";
    
     ( !mioFile.Open( NomeFile, CFile::modeCreate | CFile::modeReadWrite ) );
    
    CString testo;
    testo = "Messaggio del testo";
    mioFile.SeekToEnd();
    mioFile.Write(testo, testo.GetLength());
    mioFile.Close();
    
    }
    Vorrei maneggiare l'oggetto CFile restituito nella creazione spontanea del MFC Wizard e corrispondente alla funzione OnFileOpen, In pratica al posto del percorso predefinito che ho adoperato sopra, vorrei utilizzare il DialogBox di Windows della voce File/Apri del menu principale.

    L'identificativo corrispondente che mi ritrovo nella mappa dei messaggi è incorporato in questo codice:
    codice:
    	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
    L'applicativo così generato mi apre la finestra di dialogo con richiesta di OK, ma non saprei proprio in che modo me lo restituisce sul codice (e non so neanche se sono riuscito a spiegarmi!) :master: .

    Qualche indicazione?

    Grazie anticipate!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    Ho trovato la soluzione, e la riporto nel caso a qualcuno potesse servire. Questa è la porzione di codice che aggiungo al sorgente

    codice:
     void  CmyApp::OnFileOpen()
    {
    
       CString fileName;
    
       if  (!DoPromptFileName(fileName, AFX_IDS_OPENFILE, 
                                        OFN_HIDEREADONLY | OFN_FILEMUSTEXIST,
                                        TRUE, NULL))
                      {
                            return ;
                      }
    
             AfxGetApp()->OpenDocumentFile(fileName);
    
    CFile myFile;
      ( !myFile.Open( fileName, CFile::modeCreate | CFile::modeReadWrite ) );
    
    //...l'oggetto myFile contiene il file selezionato dal Dialog Box. 
    
    }
    Questa è la riga di comando da aggiungere alla mappa dei messaggi:
    codice:
    ON_COMMAND(ID_FILE_OPEN, CmyApp::OnFileOpen)

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.