Compartir a través de


Clase CFileDialog

Encapsula el cuadro de diálogo común que se usa para el archivo abierto u operaciones de almacenamiento de archivo.

class CFileDialog : public CCommonDialog

Members

dk77e5e7.collapse_all(es-es,VS.110).gifConstructores públicos

Nombre

Descripción

CFileDialog::CFileDialog

Crea un objeto CFileDialog.

dk77e5e7.collapse_all(es-es,VS.110).gifMétodos públicos

Nombre

Descripción

CFileDialog::AddCheckButton

Agrega un botón de comprobación al diálogo.

CFileDialog::AddComboBox

Agrega un cuadro combinado el diálogo.

CFileDialog::AddControlItem

Agrega un elemento a un control contenedor en el diálogo.

CFileDialog::AddEditBox

Agrega un cuadro de edición al diálogo.

CFileDialog::AddMenu

Agrega un menú al diálogo.

CFileDialog::AddPlace

Sobrecargado.Agrega una carpeta a la lista de lugares disponibles para que el usuario abra o guarde elementos.

CFileDialog::AddPushButton

Agrega un botón al diálogo.

CFileDialog::AddRadioButtonList

Agrega un grupo de botones de radio (también conocido como botón de radio) al diálogo.

CFileDialog::AddSeparator

Agrega un separador el diálogo.

CFileDialog::AddText

Agrega el contenido de texto al diálogo.

CFileDialog::ApplyOFNToShellDialog

Actualiza el estado CFileDialog para hacer coincidir los parámetros y los marcadores almacenados en la variable miembro m_ofn .

CFileDialog::DoModal

Muestra el cuadro de diálogo y permite al usuario crear una selección.

CFileDialog::EnableOpenDropDown

Habilita una lista desplegable del botón Abrir o Guardar en el diálogo.

CFileDialog::EndVisualGroup

Detiene la adición de elementos a un grupo visual en el diálogo.

CFileDialog::GetCheckButtonState

Obtiene el estado actual de un botón de comprobación (casilla) en el cuadro de diálogo.

CFileDialog::GetControlItemState

Obtiene el estado actual de un elemento en un control contenedor se encuentra en el diálogo.

CFileDialog::GetControlState

Obtiene la visibilidad actual y estados habilitadas de un control determinado.

CFileDialog::GetEditBoxText

Obtiene el texto actual en un control de cuadro de edición.

CFileDialog::GetFileExt

Devuelve la extensión del archivo seleccionado.

CFileDialog::GetFileName

Devuelve el nombre del archivo seleccionado.

CFileDialog::GetFileTitle

Devuelve el título del archivo seleccionado.

CFileDialog::GetFolderPath

Recupera la ruta de acceso de la carpeta o el directorio abierta para un Explorador- estilo Abrir o el cuadro de diálogo común Guardar como .

CFileDialog::GetIFileDialogCustomize

Recupera el objeto COM interno para un objeto personalizado CFileDialog .

CFileDialog::GetIFileOpenDialog

Recupera el objeto COM interno para CFileDialog que se utiliza como cuadro de diálogo archivos Abrir .

CFileDialog::GetIFileSaveDialog

Recupera el objeto COM interno para CFileDialog que se utiliza como cuadro de diálogo archivos Guardar .

CFileDialog::GetNextPathName

Devuelve la ruta de acceso completa del archivo seleccionado siguiente.

CFileDialog::GetOFN

Recupera la estructura OPENFILENAME del objeto CFileDialog .

CFileDialog::GetPathName

Devuelve la ruta de acceso completa del archivo seleccionado.

CFileDialog::GetReadOnlyPref

Devuelve el estado de sólo lectura del archivo seleccionado.

CFileDialog::GetResult

Obtiene la decisión que el usuario tomado en el diálogo.

CFileDialog::GetResults

Obtiene las opciones de usuario en un cuadro de diálogo que permite la selección múltiple.

CFileDialog::GetSelectedControlItem

Obtiene un elemento de los controles contenedor especificados en el cuadro de diálogo.

CFileDialog::GetStartPosition

Devuelve la posición del primer elemento de la lista de nombres de archivo.

CFileDialog::HideControl

Oculta el control especificado en un Explorador-estilo Abrir o el cuadro de diálogo común Guardar como .

CFileDialog::IsPickFoldersMode

Determina si el diálogo actual en modo de selector de carpetas.

CFileDialog::MakeProminent

Coloque un control en el diálogo de modo que se coloque out comparado con otros controles agregados.

CFileDialog::RemoveControlItem

Quita un elemento de un control contenedor en el cuadro de diálogo.

CFileDialog::SetCheckButtonState

Establece el estado actual de un botón de comprobación (casilla) en el cuadro de diálogo.

CFileDialog::SetControlItemState

Establece el estado actual de un elemento en un control contenedor se encuentra en el diálogo.

CFileDialog::SetControlItemText

Establece el texto de un elemento del control.Por ejemplo, el texto que acompaña a un botón de opción o un elemento de un menú.

CFileDialog::SetControlLabel

Establece el texto asociado a un control, como texto del botón o una etiqueta del cuadro de edición.

CFileDialog::SetControlState

Establece la visibilidad actual y estados habilitadas de un control determinado.

CFileDialog::SetControlText

Establece el texto del control especificado en un Explorador- estilo Abrir o el cuadro de diálogo común Guardar como .

CFileDialog::SetDefExt

Establece la extensión de nombre de archivo predeterminada para un Explorador-estilo Abrir o el cuadro de diálogo común Guardar como .

CFileDialog::SetEditBoxText

Establece el texto actual en un control de cuadro de edición.

CFileDialog::SetProperties

Proporciona una propiedad almacenada que define los valores predeterminados que se utilizará para el elemento que se está guardando.

CFileDialog::SetSelectedControlItem

Establece el estado seleccionado de un elemento determinado en un grupo de botones de radio o un cuadro combinado encontró en el diálogo.

CFileDialog::SetTemplate

Establece la plantilla en el cuadro de diálogo para el objeto CFileDialog .

CFileDialog::StartVisualGroup

Declara un grupo visual en el diálogo.Las llamadas subsiguientes a cualquier “add” método agregan los elementos a este grupo.

CFileDialog::UpdateOFNFromShellDialog

Actualiza los datos almacenados en la variable miembro m_ofn para que coincida con el estado actual del cuadro de diálogo de archivos.

dk77e5e7.collapse_all(es-es,VS.110).gifMétodos protegidos

Nombre

Descripción

CFileDialog::OnButtonClicked

Llamado cuando se hace clic en el botón.

CFileDialog::OnCheckButtonToggled

Llamado cuando la casilla está activada o desactivada.

CFileDialog::OnControlActivating

Se llama cuando el control se está activo.

CFileDialog::OnFileNameChange

Controla el mensaje WM_NOTIFY CDN_SELCHANGE .

CFileDialog::OnFileNameOK

Valida el nombre de archivo especificado en el cuadro de diálogo.

CFileDialog::OnFolderChange

Controla el mensaje WM_NOTIFY CDN_FOLDERCHANGE .

CFileDialog::OnInitDone

Controla el mensaje WM_NOTIFY CDN_INITDONE .

CFileDialog::OnItemSelected

Se invoca cuando se seleccione el elemento del contenedor.

CFileDialog::OnLBSelChangedNotify

Permite realizar acciones personalizadas cuando cambia la selección de archivos.

CFileDialog::OnShareViolation

Controla las infracciones de recurso compartido.

CFileDialog::OnTypeChange

Controla el mensaje WM_NOTIFY CDN_TYPECHANGE .

dk77e5e7.collapse_all(es-es,VS.110).gifMiembros de datos públicos

Nombre

Descripción

CFileDialog::m_ofn

La estructura de Windows OPENFILENAME .Proporciona acceso a los parámetros básicos del cuadro de diálogo de archivos.

Comentarios

Los cuadros de diálogo de archivos comunes permiten implementar los cuadros de diálogo de selección de archivos, por ejemplo, Abrir archivo y Guardar como, de manera compatible con los estándares de Windows.

Puede utilizar CFileDialog como es mediante el constructor proporcionado, o puede derivar dispone de la del cuadro de diálogo CFileDialog y escribir un constructor para satisfacer las necesidades.En cualquier caso, estos cuadros de diálogo se comportarán como cuadros de diálogo estándar de MFC dado que se derivan Clase de CCommonDialog.CFileDialog se basa en el archivo de COMMDLG.DLL que incluye Windows.

La apariencia y la funcionalidad CFileDialog con Windows Vista difieren de las versiones anteriores de Windows.El valor predeterminado CFileDialog utiliza automáticamente el nuevo estilo Windows Vista sin cambios de código si se compila un programa y ejecución en Windows Vista.Utilice el parámetro bVistaStyle en el constructor para invalidar manualmente esta actualización automática.La excepción a la actualización automática es cuadros de diálogo personalizados.No se convierten al nuevo estilo.Para obtener más información sobre el constructor, vea CFileDialog::CFileDialog.

[!NOTA]

El control ID System diferencia en Windows Vista de versiones anteriores de Windows cuando se utiliza CFileDialog.Debe actualizar todas las referencias a los controles CFileDialog en código antes de poder puerto el proyecto de una versión anterior de Windows.

Algunos métodos CFileDialog no se admiten en Windows Vista.Compruebe el tema individual de método para la información sobre si el método está admitido.Además, las funciones heredadas siguientes no se admiten en Windows Vista:

Los mensajes de windows para la clase CFileDialog varían en función del sistema operativo utiliza.Por ejemplo, Windows XP no admite CDialog::OnCancel y CDialog::OnOK para la clase CFileDialog .Sin embargo, Windows Vista los admite.Para obtener más información sobre los distintos mensajes que se generan y el orden en que se reciben, vea Ejemplo de CFileDialog: Orden del evento de registro.

Para utilizar un objeto CFileDialog , primero cree el objeto mediante el constructor CFileDialog .Una vez construido el cuadro de diálogo, puede establecer o modificar cualquier valor de la estructura CFileDialog::m_ofn para inicializar los valores o estados de los controles de cuadro de diálogo.La estructura m_ofn es OPENFILENAMEescrito.Para obtener más información, vea la estructura OPENFILENAME en Windows SDK.

Después de inicializar los controles de cuadro de diálogo, llame al método CFileDialog::DoModal para mostrar el cuadro de diálogo para que el usuario puede escribir la ruta de acceso y nombre de archivo.DoModal devuelve si el usuario hizo clic en ACEPTAR (IDOK) o el botón cancelar (IDCANCEL).Si DoModal devuelve IDOK, puede utilizar una de las funciones públicas del miembro CFileDialog para recuperar la información introducida por el usuario.

[!NOTA]

En Windows Vista, las llamadas a IFileDialog::SetFileTypes producen un error.La segunda llamada a SetFileTypes para cualquier instancia CFileDialog devolverá E_UNEXPECTED en Windows Vista.Alguna llamada de funciones del método CFileDialogSetFileTypes.Por ejemplo, dos llamadas a CFileDialog::DoModal para la misma instancia CFileDialog generan ASSERT.

CFileDialog incluye varios miembros protegidos que permiten hacer administrar personalizado de infracciones de recurso compartido, la validación del nombre de archivo, y la notificación del cuadro de lista.Estos miembros protegidos son funciones de devolución de llamada que la mayoría de las aplicaciones no tienen que usar porque el control predeterminado se realiza automáticamente.Las entradas de Mensaje- mapa para estas funciones no se requieren porque son funciones virtuales estándar.

Puede utilizar la función de Windows CommDlgExtendedError para determinar si se ha producido un error durante la inicialización del cuadro de diálogo y para obtener más información sobre el error.

La destrucción de objetos CFileDialog se controla automáticamente.No tiene que llamar a CDialog::EndDialog.

Para permitir al usuario seleccionar varios archivos, especifique el marcador OFN_ALLOWMULTISELECT antes de llamar a DoModal.Debe proporcionar dispone del búfer de nombre de archivo para alojar la lista devuelta de nombres de varios archivos.Haga esto reemplazando m_ofn.lpstrFile con un puntero a un búfer que ha asignado, después de crear CFileDialog, pero antes de que se llama a DoModal.

Además, debe establecer m_ofn.nMaxFile mediante el número de caracteres del búfer indicada por m_ofn.lpstrFile.Si establece el número máximo de archivos que se seleccionen en n, el tamaño de búfer necesario es n * (_MAX_PATH + 1) + 1.El primer elemento devuelto en el búfer es la ruta de la carpeta donde los archivos seleccionados.Para Windows Vista- los cuadros de diálogo del estilo, el directorio y cadenas de nombre de archivo son terminada en null, con un carácter null adicional después del nombre de archivo pasado.Este formato permite a cuadros de diálogo de Explorador- estilo para devolver los nombres de archivo largos que incluyen espacios.Para los cuadros de diálogo antiguo, el directorio y cadenas de nombre de archivo están separados por espacios y la función utiliza los nombres de archivo cortos para los nombres de archivo con espacios.

El ejemplo siguiente se muestra cómo utilizar un búfer para recuperar y enumerar nombres de varios archivos.

#define MAX_CFileDialog_FILE_COUNT 99
#define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

CString fileName;
wchar_t* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
CFileDialog dlgFile(TRUE);
OPENFILENAME& ofn = dlgFile.GetOFN( );
ofn.Flags |= OFN_ALLOWMULTISELECT;
ofn.lpstrFile = p;
ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;

dlgFile.DoModal();
fileName.ReleaseBuffer();

wchar_t* pBufEnd = p + FILE_LIST_BUFFER_SIZE - 2;
wchar_t* start = p;
while( ( p < pBufEnd ) && ( *p ) )
  p++;
if( p > start )
{
  _tprintf(_T("Path to folder where files were selected:  %s\r\n\r\n"), start );
  p++;

  int fileCount = 1;
  while( ( p < pBufEnd ) && ( *p ) )
  {
    start = p;
    while( ( p < pBufEnd ) && ( *p ) )
      p++;
    if( p > start )
      _tprintf(_T("%2d. %s\r\n"), fileCount, start );
    p++;
    fileCount++;
  }
}

Para cambiar el tamaño de búfer en respuesta al usuario que selecciona nombres de varios archivos, debe derivar una nueva clase CFileDialog y reemplazar el método CFileDialog::OnFileNameChange .

Si deriva una nueva clase CFileDialog, puede utilizar un mapa de mensajes para administrar cualquier mensaje.Para extender el control de mensajes predeterminada, derive una clase CFileDialog, agregar un mensaje asignado a la nueva clase, y proporcionar funciones de miembro para los nuevos mensajes.No tiene que proporcionar una función de enlace para personalizar el cuadro de diálogo.

Para personalizar el cuadro de diálogo, derive una clase CFileDialog, proporcionar una plantilla personalizada del cuadro de diálogo, y agregar un mapa de mensajes para procesar mensajes de notificación de controles extendidos.Pase los mensajes sin procesar a la clase base.No tiene que personalizar la función de enlace.

Cuando se utiliza el estilo Windows VistaCFileDialog, no puede utilizar mapas de mensajes y plantillas del cuadro de diálogo.En su lugar, debería utilizar las interfaces COM para la funcionalidad similar.

Para obtener más información acerca de cómo se usa CFileDialog, vea Clases comunes de diálogo.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

Requisitos

**Encabezado:**afxdlgs.h

Vea también

Referencia

Clase de CCommonDialog

Gráfico de jerarquía