SCR/AL1 - TOME III. Les librairies utilitaires
21. Le groupe s_comdlg
21.2 WscrGetFilename (file s_wcomdl.c:106)
Syntax
int WscrGetFilename(hOwner, opensave, title, infile, outfile, ftypes)
HWND hOwner;
int opensave;
U_ch *title, *infile, *outfile, *ftypes;
Description
Ouvre un écran de sélection de fichier. Cette fonction est utilisée pour les champs DIR des pages.
- hOwner est le handle de la fenêtre appelante. Si on ignore cette valeur, on peut passer 0 comme paramètre. La dernière fenêtre active de l'application deviendra owner.
- title définit le titre de la fenêtre ("Ouverture de fichier" par ex.) Si title est NULL, un titre type est proposé.
- opensave indique s'il s'agit d'un fichier à ouvrir ou à sauver: 0 indique open, 1 indique save. Dans le cas d'une ouverture, le fichier doit exister, dans le cas d'un sauvetage, seul le directory doit exister. D'autre part, le texte des boutons de confirmation et des titres par défaut sont différents : Ouverture ou Sauvetage selon le cas.
- infile contient le nom par défaut du fichier. Le directory initial pour la sélection sera automatiquement placé sur celui de ce fichier.
- outfile contient le nom sélectionné. Si aucune sélection n'a été opérée, le nom par défaut (infile) est copié dans outfile. Ce buffer doit pouvoir contenir 255 caractères!
- ftypes contient les types de fichiers acceptés dans un string séparé par des pipes (|). Chaque type est présenté comme une paire de strings séparés par des |, dont le premier indique le texte à faire apparaître dans le Combobox et le second le ou les types de fichiers correspondants. Si ftypes est NULL, tous les fichiers sont admis et le texte All Files est affiché. Si plus d'un type correspond à un texte, les types doivent être séparés par des points-virgules (;).
ftypes DOIT se terminer par un |, sans quoi il est ignoré.
Exemple
char outfile[256];
WscrGetFilename(0L, "Mon titre", "toto", outfile,
"Text files|*.txt;*.asc|C sources|*.c|");
Valeur retournée
La fonction retourne -1 si la sélection ne s'est pas opérée (Cancel, ...).