Programación General > Visual C++

 Dialogo Abrir De La Api

(1/2) > >>

fap1603:
Hola a todos,

Tengo una necesidad de mostrar, y utilizar el dialogo abrir de la API de Windows, pero no se como hacerlo, lo he intntado todo, pero no me da. Agradeceria mucho cualquier ayuda. Trabajo en Visual C++. y en principio llamaria al dialogo desde un menu. Muchas gracias.

Salu2.

navisoft:
Utiliza el siguiente codigo:

--- Código: Text --- void CTuDialogo::OnClickEnAlgunBoton(){   CFileDialog fileDialog(/*parametros*/);    if( fileDialog.DoModal ()==IDOK )   {      CString path = fileDialog.GetPathName();         CString name = fileDialog.GetFileTitle ();         MesasgeBox(name); // solo para probar   }}  Primerop que nada tienes que revisar la documentacion para saber que parametros vas a utilizar ...

espero que te sirva de algo.

fap1603:
la verda que lo he probado pero no va, este es el codigo que yo tengo:

BOOL Dabrir(HWND hWnd)
{
   OPENFILENAME  OpenFileName;

   OpenFileName.lStructSize=sizeof(OPENFILENAME);
{
    OpenFileName.hwndOwner         = hWnd;
    OpenFileName.lpstrFilter       = NULL;
    OpenFileName.lpstrCustomFilter = NULL;
    OpenFileName.nMaxCustFilter    = 0;
    OpenFileName.nFilterIndex      = 0;
    OpenFileName.lpstrFileTitle    = NULL;
    OpenFileName.nMaxFileTitle     = 0;
    OpenFileName.lpstrInitialDir   = NULL;
    OpenFileName.lpstrTitle        = "Open a File";
    OpenFileName.nFileOffset       = 0;
    OpenFileName.nFileExtension    = 0;
    OpenFileName.lpstrDefExt       = NULL;
    OpenFileName.Flags             = OFN_SHOWHELP | OFN_EXPLORER | OFN_ENABLEHOOK | OFN_ENABLETEMPLATE;
   
   GetOpenFileName(&OpenFileName);
   }OPENFILENAME;

   return 0;
}

no se que esta mal, por que no abra cuando llamo a la funcion. Gracias por la ayuda

Eternal Idol:
OPENFILENAME Abrir;
  char *file = (char*)MALLOC(1024);
  char *path = (char*)MALLOC(1024);
  ZeroMemory(&Abrir, sizeof(OPENFILENAME));
  Abrir.lStructSize = sizeof(OPENFILENAME);
  Abrir.hwndOwner = NULL;
  Abrir.nFilterIndex = 1;
  Abrir.lpstrFile = path;
  Abrir.nMaxFile = 1024;
  Abrir.lpstrFileTitle = file;
  Abrir.nMaxFileTitle = 1024;
  Abrir.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  Abrir.lpstrFilter = "Texto\0*.txt\0Todos los archivos\0*.*\0";
  Abrir.lpstrInitialDir = 0;
  Abrir.lpstrTitle = "Selecciona un archivo\0\0";
  DWORD Abierto = GetOpenFileName(&Abrir);

  if (Abierto != 0) { MessageBox(0,path,path,0); } //aca esta el archivo que seleccionaron
  free(file);
  free(path);

 :ph34r:

fap1603:
Muchas gracias, me ha salido muy bien.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa