Fenêtre "Ouvrir un fichier" - C++ - Programmation
Marsh Posté le 07-03-2003 à 21:15:43
Y'a pas assez de code. Poste tout ce que tu peux.
Marsh Posté le 07-03-2003 à 21:22:55
Je vais quand meme pas balancer tt mon code, mais bon je vais essayer de vous mettre ce ki me semble utile :
Dans le wmain(...) :
Code :
|
La fonction DialogProc (enfin un peu filtrée) :
Code :
|
Chépas si ça suffit, mais en regardant mon code c'est tout ce ke je trouve qui s'y rapporte...
Merci.
Marsh Posté le 07-03-2003 à 21:54:16
Le premier caractère de ofn.lpstrFile doit toujours être NULL, sinon tu auras une erreur CDERR_INITIALIZATION (tu peux récupérer ce code d'erreur en appelant CommDlgExtendedError() juste après l'appel à GetOpenFileName()
Pour résoudre ceci, tu dois initialiser le buffer szFile avec des valeurs nulles. Le mieux est de faire un ZeroMemory. Rajoute la ligne :
Code :
|
avant la ligne
Code :
|
et ça devrait fonctionner.
Conseil : toujours récupérer les codes d'erreur fournis par les fonctions !
Marsh Posté le 07-03-2003 à 22:26:42
Génial merci !
Mais dis moi, comment ça marche cette fonction CommDlgExtendedError() ?
Je vois que ça me retourne un DWORD, comment on utilise ça ?
Marsh Posté le 07-03-2003 à 22:34:59
tu dois insérer l'entête correspondant au début de ton source :
Code :
|
Tous les codes d'erreur de CommDlg sont déclarés dans ce fichier. Ils commencent tous par CDERR_****.
Donc tu dois intercepter tous les codes possibles comme ceci par exemple :
Code :
|
Marsh Posté le 07-03-2003 à 21:07:53
'lut,
Dans une appli c++ j'essaie d'ouvrire une boite de dialogue type "ouvrir un fichier", donc avec la fonction GetOpenFileName.
J'utilise le bout de code suivant :
Pour donner qq éléemtns du contexte, je suis déjà dans une boite de dialoge (hwndDlg), et je l'ouvre à partir de ça.
Et le pb c'est que ça fait rien du tout.... et je comprends pas pkoi...
Merci de votre aide.