Programación General > Visual C++
Dialogo Abrir De La Api
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
[#] Página Siguiente
Ir a la versión completa