PDA

Visualizza la versione completa : [C++] Finestra di dialogo per l'apertura di un file


djpeppe
26-06-2007, 19:07
ho studiato un bel p di API WIN32. vorrei mettere nel mio programma un dialog quasi identoco a quello del blocco note. uno semplicissimo ma che mi permette di visualizzare i file.
come faccio?

zero85
26-06-2007, 19:16
http://msdn2.microsoft.com/en-us/library/ms646927.aspx

djpeppe
26-06-2007, 19:27
e come la uso?
io ero abiutato al fopen, che manda le info a un puntatore tipo
FILE *prova;
ora come faccio a mettere le informazioni in quel puntatore prova?

zero85
26-06-2007, 19:36
Controlla il membro lpstrFile della struttura OPENFILENAME. Il membro dopo la chiamata a GetOpenFileName o GetSaveFileName contiene percorso, nome ed estensione del file.

djpeppe
26-06-2007, 19:40
mi potresti fare un esempio?
grazie

zero85
26-06-2007, 20:11
#include <windows.h>
#include <commctrl.h>
#include <commdlg.h>
....
....
OPENFILENAME cdlg;
LPTSTR FileNameIn[MAX_PATH];
....
....
ZeroMemory(&cdlg,sizeof(cdlg));
cdlg.lStructSize = sizeof(cdlg);
cdlg.hwndOwner = hwnd;
cdlg.lpstrFilter = "Immagini di Alchool (*.mdf)\0*.mdf\0";
cdlg.lpstrFile = FileNameIn;
cdlg.nMaxFile = MAX_PATH;
cdlg.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
cdlg.lpstrDefExt = "mdf";
if(GetOpenFileName(&cdlg))
{
FILE *prova;
prova = fopen(FileNameIn ,"rb");
....
fclose(prova);
}


Attento che FileNameIn potrebbe essere un char o un wchar a seconda delle impostazioni del progetto quindi se un wchar prima della fopen devi effettuare la conversione

Loading