IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[winAPI] Comment savoir si plusieurs fichiers sont sélectionnés avec ofn_multiselect?


Sujet :

Windows

  1. #1
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut [winAPI] Régions ! et savoir si 1/>1 fichiers sont sélectionnés avec ofn_multiselect?
    Bonjour,

    Durant la conception d'une boîte de dialogue permettant la lecture d'un seul fichier mp3 je suis confronté à plusieurs problèmes :

    - Comment savoir si l'utilisateur a sélectionné plus d'un fichier dans la Common dialog Box "ouvrir" en OFN_MULTISELECT ? (afin d'utiliser un code différent selon le cas)

    (2autres problèmes résolus)

    - Les sliders, boutons etc ... comprennent une zone blanche autour d'eux, m'empêchant d'afficher une image en background (sinon c'est moche) existe-t-il de la transparence possible pour ceux ci ?

    Comment résoudre ces problèmes ?
    Vive l'embarqué.

  2. #2
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Up !
    Vive l'embarqué.

  3. #3
    mat.M
    Invité(e)
    Par défaut
    Faire une recherche sur ce forum et VC++ il ya eu un sujet là dessus il y a quelques jours concernant la multiselection.
    Pour les boutons éternelle réponse il faut créer des régions .
    Consulter le MSDN.
    Va voir sur www.codeproject.com il doit y avoir un article pour concevoir des controles personnalisés.

  4. #4
    mat.M
    Invité(e)
    Par défaut
    J'avais fait une réponse il y a quelques jours ; il faut faire une recherche avec FindFirstFile et FindFileNext


    If the OFN_ALLOWMULTISELECT flag is set and the user selects multiple files, the buffer contains the current directory followed by the file names of the selected files. For Explorer-style dialog boxes, the directory and file name strings are NULL separated, with an extra NULL character after the last file name. For old-style dialog boxes, the strings are space separated and the function uses short file names for file names with spaces. You can use the FindFirstFile function to convert between long and short file names. If the user selects only one file, the lpstrFile string does not have a separator between the path and file name.

    http://msdn.microsoft.com/library/de..._directory.asp

  5. #5
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Merci pour ton aide Mat.M

    Conçerant le multiselect, j'avais plutôt pensé à compter le nombre de caractères NULL dans la string de lpstrFile buffer... Et utiliser un code différent selon si le nombre est de 1, ou plusieurs.
    (En effet msdn précise que si on sélectionne un seul fichier,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ofn.lpstrFile = "C:\Music\Example.mp3\0"
    Alors que si on en sélectionne plusieurs,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ofn.lpstrFile = "C:\Music\0Example1.mp3\0Example2.mp3\0Example3.mp3\00"
    )
    Je vais m'occuper à la coder bientôt.
    [edit] j'ai un peu de mal avec cette fonction ... si tu peux approfondir ce que tu m'as dit sur FindFirstFile, cela m'arrangerait (à vrai dire je ne vois pas du tout le rapport)

    Mais je ne comprends pas vraiment le rôle ni la syntaxe des "régions" ... y aurait il un site le dataillant ? (J'ai été voir sur coderesource sans trouver vraiment comment faire...)
    Pour info, je code en C. (d'ailleurs si vous avez un site d'apprentissage sur le C++ ne vous gênez pas )

    Merci d'avance.
    Vive l'embarqué.

  6. #6
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Up
    Vive l'embarqué.

  7. #7
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Up
    Vive l'embarqué.

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par kidpaddle2
    j'ai un peu de mal avec cette fonction ... si tu peux approfondir ce que tu m'as dit sur FindFirstFile, cela m'arrangerait (à vrai dire je ne vois pas du tout le rapport Pour info, je code en C. (d'ailleurs si vous avez un site d'apprentissage sur le C++ ne vous gênez pas )

    Merci d'avance.
    ? Il ya un exemple sur le MSDN ; OFN renvoit le chemin , il suffit de le parcourir

Discussions similaires

  1. [C#] Comment savoir si deux fichiers sont identiques
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/11/2006, 15h59
  2. Comment savoir si un fichier/répertoire est en lecture seule
    Par Guigui_ dans le forum Général Python
    Réponses: 3
    Dernier message: 29/12/2004, 16h05
  3. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53
  4. Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?
    Par vanquish dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/10/2003, 10h28
  5. Réponses: 4
    Dernier message: 16/08/2003, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo