stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009
-
12 oct. 2006 à 23:02
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
13 oct. 2006 à 08:40
salut,
sur une source (http://www.cppfrance.com/code.aspx?ID=28478)
j'ai extrait une fonction de la librairy créé et ais essayé de la faire fonctioner, mais cela ne marche pas.
voyez vous une fautes ( dans mes variables parceque je ne sais pas tro quoi déclarer...) :
int FILEOpenStandardDialogBoxOpenFile(char *extension, char* descriptiontype, HWND windowhandle, BOOL VIEWERROR)
{
char *fichierouvrir, *buffer;
int handle, i;
OPENFILENAME ofn; //Structure pour ouvrir la boite de dialogue "Ouvrir un fichier..."
fichierouvrir = (char*) calloc(FILESIZEBUFFER, sizeof(char));
buffer = (char*) calloc(FILESIZEBUFFER, sizeof(char));
// Initialisation de la structure OPENFILENAME
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = windowhandle;
ofn.lpstrFile = fichierouvrir;
ofn.nMaxFile = FILESIZEBUFFER;
//on doit creer une chaine du type: "descriptiontype\0extension"
buffer = strcat(buffer, descriptiontype);
handle = strlen(buffer) + 1;
for (i = 0; i < 5 && *(extension + i) != '\0'; i++)
buffer[handle + i] = *(extension + i);
ofn.lpstrFilter = buffer;
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.lpstrTitle = strcat(FILETITREOPEN, extension);
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = _getcwd(NULL, FILESIZEBUFFER);
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
//Création de la fenètre d'ouverture d'un fichier
if (GetOpenFileName(&ofn) == TRUE)
{
if (handle = FILEOpen(fichierouvrir, VIEWERROR) != -1)
{
LocalFree(fichierouvrir);
return handle;
}
}
LocalFree(fichierouvrir);
return -1;
}
Pas de ZeroMemory() qui ferait la moitié de saboucle inutilement.
Ouvre le fichier hors de ce sélecteur, il ne faut pas tout mélanger si on veut avoir des fonctions réutilisables aisément.
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 13 oct. 2006 à 07:45
super merci !
quelquesquestions :
la fonction renvoie le nom du fichier ouvert par l'user et -1 pour une erreur ?
je doit juste initialiser une variable ?
HWND hOwner = szfile ?
le prototipe sera BOOL __stdcall dlgFileOpen(HWND hOwner); ??
merci d'avance !
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?