Cómo llamar al cuadro de diálogo de abrir archivo en vc++
1. Abra la carpeta:
1. Implementación de CFileDialog
CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST | OFN_READONLY,
TEXT("Archivos de imagen compatibles (*.jpg;*.gif;*.bmp;...) |*.jpg;*.gif;*.bmp|Archivos de imagen Tiff especializados ( *.tiff;*.tif)|*.tiff;*.tif| Todos los archivos (*. *)|*.|"),NULL);
hFileDlg.m_ofn.nFilterIndex=1;
hFileDlg.m_ofn.hwndOwner=m_hWnd;
hFileDlg.m_ofn.lStructSize=sizeof(OPENFILENAME);
hFileDlg.m_ofn.lpstr=m_hWnd. m_ofn.lpstrTitle=TEXT("Abriendo archivo de imagen... \0");
hFileDlg.m_ofn.nMaxFile=MAX_PATH;
if(hFileDlg.DoModal() == IDOK )
{
m_path = hFileDlg.GetPathName();
UpdateData(FALSE);
}
2. Implementación
OPENFILENAMEA ofn;
char szFile[260]
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = NULL;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = szFile;
ofn.lpstrFile[0] = szFile. lpstrFile[0] = '\0';
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn...nMaxFileTitle = 0 ;
ofn.lpstrInitialDir = NULL;
ofn...Flags = 0;
if (GetOpenFileNameA(&ofn)==FALSE)
{
Devuelve S_FALSE;
}
CString c_save_path=ofn.lpstrFile;
2. p >
Igual que el anterior, excepto
cambie CFileDialog hFileDlg(true,NULL) a CFileDialog hFileDlg(false,NULL,
o cambie GetOpenFileNameA a GetSaveFileNameA.
3. Cuadro de diálogo Examinar carpeta
//Función de devolución de llamada
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
p>{
if( uMsg==BFFM_SELCHANGED||uMsg==BFFM_INITIALIZED)
{
if(uMsg==BFFM_INITIALIZED)< / p>
{
::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,LPARAM(lpData));
}
}
return 0;
}
TCHAR chPath[255]; //Cadena utilizada para almacenar la ruta
CString strPath = ""; p> p>
BROWSEINFO bInfo;
GetModuleFileName(NULL,chPath,MAX_PATH);
strPath = chPath;
ZeroMemory(& bInfo, sizeof (bInfo ));
bInfo.hwndOwner = m_hWnd;
bInfo.lpszTitle = _T("Seleccione la ruta:");
bInfo.ulFlags = BIF_RETURNONLYFSDIRS| BIF_ EDITBOX;
bInfo.lpfn = BrowseCallbackProc;
bInfo.lParam = (LPARAM)strPath.GetBuffer(strPath.GetLength());
LPITEMIDLIST lpDlist ; //IDList se utiliza para guardar la información devuelta
lpDlist = SHBrowseForFolder(&bInfo); //Muestra el cuadro de diálogo de selección
if(lpDlist != NULL) / /El usuario presionó el botón OK
{
SHGetPathFromIDList(lpDlist, chPath); //Convierte una lista de identificadores de elementos en una cadena
strPath = chPath; //Convierte una cadena de tipo TCHAR en una cadena de tipo CString
m_save_path = strPath;
UpdateData(FALSE);
}
Título del cuadro de diálogo Configuración:
dlg.m_ofn.lpstrTitle = _T("Abrir imagen");
Establecer título del cuadro de diálogo:
dlg.