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

MFC Discussion :

[MFC] Intercepter l'ouverture d'un CFileDialog


Sujet :

MFC

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut [MFC] Intercepter l'ouverture d'un CFileDialog
    Bonjour a tous,

    J'aimerai obtenir de l'aide pour détecter toute ouverture d'un CFileDialog dans mon application - ceci afin d'en modifier les propriétés avant qu'il ne s'affiche.

    Contexte
    Mon application est un navigateur internet permettant de gérer différents onglets.
    Mon but est de pouvoir paramétrer les boites de dialogue d'ouverture de fichier(s) (répertoire initial, type de fichiers etc..) dés lors que l'on clic sur un bouton "parcourir", quelque soit la page internet naviguée.

    Problème
    Avant de poster, j'ai bien cherché sur la FAQ et le forum, j'ai trouvé de nombreuses indications sur la gestion des CFileDialog (notamment ici) mais malheureusement rien qui ne puisse convenir à mon problème.
    Je pense qu'avec toutes ces indications je suis en mesure de paramètrer le CFileDalog dés lors que je serais capable d'intercepter sa création.

    Explications
    Pour vous permettre de m'aider voici un peu d'explications :
    J'ai une classe dérivée de CHtmlView qui me permet d'intercepter la majeure partie des évenements (ouverture de boites de dialogues, navigation etc..). Je pense que la détection doit être gérée ici mais je ne trouve pas comment :/
    Je n'arrive pas a récupérer la structure m_ofn du CFileDialog qui s'ouvre.

    J'espère avoir été assez clair et précis pour obtenir de l'aide, dans le cas contraire je m'expliquerai davantage.
    Peut être n'est-ce tout simplement pas possible de contrôler celà sans avoir la main sur la création du CFileDialog mais j'en doute..

    Voilà si quelqu'un est en mesure de m'aider, je l'en remercie à l'avance

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    la CFileDialog c'est toi qui l'ouvre ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    Non, je n'ai pas de classe qui étend CFileDialog.

    Ce n'est pas moi qui instancie l'objet, le CFileDialog s'ouvre lorsque l'on clic sur un bouton parcourir en naviguant...
    Je n'ai pas le controle de la création mais j'espere pouvoir intercepter celle ci pour remodéliser le CFileDialog a mon souhait.
    Par exemple pour limiter l'access à un seul répertoire prédifini qui contiendrait les seuls fichiers pouvant être sélectionnés.

    Tu vois le genre?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    le plus simple a mon avis c'est de trouver comment intercepter la commande qui lance la CFileDialog ,pour mettre la tienne a la place..


  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    Oui c'est ce que je cherche, le comment

    Mais je pense que l'a commande qui l'ouvre est propre au champ HTML "parcourir" contenu dans la page naviguée...

    Ce que je veux dire c'est qu'il n'y a pas de commande dans mon code, mais que j'espère intercepter l'évènement qui notifie la création de la fenêtre et je pense que tu as bien compris celà.

    J'ai tenté OnNewWindow2, OnInitDialog, OnNavigateComplete2 etc..
    En fait tout évènement interceptable depuis un CHtmlView

    Peut être il y t'il un moyen de détecter toutes les "childs" de ma fenêtre mère, de tester si l'une de ses fenètres est un CFileDialog et dans ce cas de modifier la structure m_ofn de cette fenêtre ... ? :/

    Mais je ne trouve pas comment accéder à cet élément.
    Je suis loin d'être expert, je me demande juste si l'on peut intercepter celà, mais comme je me dis :

    "si l'API affiche une boite à l'écran forcement il doit y avoir quelque part un évènement qui notifie celà, non?"

    Merci pour l'interet que tu porte à mon problème en tout cas

Discussions similaires

  1. [MFC]affichage mode detail d'une CFileDialog
    Par lucky dans le forum MFC
    Réponses: 13
    Dernier message: 14/09/2005, 22h05
  2. [MFC]Intercepter evenement sur icone systray
    Par 0xYg3n3 dans le forum MFC
    Réponses: 1
    Dernier message: 29/04/2005, 21h53
  3. [MFC] Lancer l'ouverture d'un document
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 29/04/2005, 17h12
  4. [MFC] Intercepter le clic sur Minimze Box
    Par March' dans le forum MFC
    Réponses: 2
    Dernier message: 09/07/2004, 16h15
  5. [MFC] Maximiser à l'ouverture une fenetre fille !
    Par leskritiques dans le forum MFC
    Réponses: 15
    Dernier message: 28/04/2004, 08h50

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