C/Visual C - ¿Cual es el fichero?

 
Vista:

¿Cual es el fichero?

Publicado por Jose Antonio (15 intervenciones) el 11/02/2003 14:41:35
Hola, mi pregunta es si sabes el nombre o referencia del fichero que se abre. Al crear el proyecto SDI y al derivar de la clase CEditView. El programa creado tiene un menus de fichero con el que ............como puedo saber el nombre de ese fichero, como puedo manejarlo, en mi programa fuente ufff espero no haberme liado y verlo explicado bien. Hasta luego.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Manejo de archivos en un proyecto SDI con CEditView

Publicado por Alejandro (1112 intervenciones) el 02/05/2025 23:46:50
Cuando creas un proyecto de aplicación de documento y vista (SDI) en Visual C++ y utilizas la clase `CEditView`, el archivo que se abre y maneja se refiere al documento asociado a la vista. Aquí te explico cómo puedes acceder y manejar el nombre del archivo en tu programa.

1. Acceso al documento:
En un proyecto SDI, el documento se deriva de la clase `CDocument`. Para acceder al documento desde tu vista (`CEditView`), puedes usar el método `GetDocument()`. Esto te permitirá acceder a los datos del documento, incluyendo el nombre del archivo.

1
CMyDocument* pDoc = (CMyDocument*)GetDocument();

Asegúrate de reemplazar `CMyDocument` con el nombre real de tu clase de documento.

2. Obtener el nombre del archivo:
Una vez que tienes acceso al documento, puedes obtener el nombre del archivo utilizando el método `GetPathName()`, que devuelve la ruta completa del archivo asociado al documento.

1
CString fileName = pDoc->GetPathName();

3. Manejo del archivo:
Puedes manejar el archivo de varias maneras, como abrirlo, guardarlo o modificar su contenido. Aquí hay un ejemplo de cómo podrías implementar la funcionalidad de guardar el documento:

1
2
3
4
5
6
void CMyEditView::OnFileSave() {
    CMyDocument* pDoc = (CMyDocument*)GetDocument();
    if (pDoc) {
        pDoc->OnSaveDocument(pDoc->GetPathName());
    }
}

4. Implementación de comandos de menú:
Si deseas agregar comandos al menú de archivo para abrir o guardar archivos, puedes hacerlo en el archivo de comandos de tu aplicación. Asegúrate de que los comandos estén conectados a las funciones adecuadas en tu vista o documento.

5. Ejemplo completo:
Aquí tienes un ejemplo de cómo podrías implementar el manejo de archivos en tu vista:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void CMyEditView::OnFileOpen() {
    CFileDialog dlg(TRUE);
    if (dlg.DoModal() == IDOK) {
        CString filePath = dlg.GetPathName();
        CMyDocument* pDoc = (CMyDocument*)GetDocument();
        pDoc->OnOpenDocument(filePath);
        // Actualiza la vista
        Invalidate();
    }
}
 
void CMyEditView::OnFileSave() {
    CMyDocument* pDoc = (CMyDocument*)GetDocument();
    if (pDoc) {
        pDoc->OnSaveDocument(pDoc->GetPathName());
    }
}

Resumen:


- Utiliza `GetDocument()` para acceder al documento asociado a tu vista.
- Usa `GetPathName()` para obtener el nombre del archivo.
- Implementa comandos de menú para abrir y guardar archivos.

¡Buena suerte con tu proyecto, José!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar