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 :

Lancement d'un CProgressCtrl a la creation d'une DialogueBox


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Lancement d'un CProgressCtrl a la creation d'une DialogueBox
    Bonsoir,

    Mon application comporte a un moment donne un long traitement, je lance donc une DialogBox comprenant un CProgress et un boutton pour lancer le calcul.

    Or ce que j'aimerais, c'est ne pas a avoir a appuyer sur ce boutton, lancer le calcul et le CProgressCtrl directement apres la creation de la DialogBox.

    J'ai bien essaye de le faire dans le OnInitDialog() mais ca ne marche pas puisque je pense que le CProgressCtrl n'est pas encore cree.
    J'ai aussi tente dans le OnFocus() ou dans le OnSize() mais sans succes...

    Quel serait le moment le plus propice ou appeler mon calcul ?

    Merci.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    j'ai pas tout compris dans l'enchaînement mais bon,
    une boite de dialogue est prête graphiquement a partir de OnInitDialog.
    et au premier UpdateData fait les contrôles sont subclassés en l'occurrence par l'appel de CDialog::OnInitDialog.
    tu peux aussi essayer d'intercepter le message WM_ACTIVATE .
    pour lancer ton traitement.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par farscape
    salut,
    j'ai pas tout compris dans l'enchaînement mais bon
    Ce que je fait:

    - j'appuis sur un boutton => lancement d'une DialogBox
    - Sur cette DialogBox, jappuis sur un boutton => lancement du calcul et du CProgress
    - Fermeture de la DialogBox


    Ce que je voudrais:

    - j'appuis sur un boutton => lancement d'une DialogBox, lancement du calcul et du CProgress
    - Fermeture de la DialogBox


    Citation Envoyé par farscape
    une boite de dialogue est prête graphiquement a partir de OnInitDialog.
    et au premier UpdateData fait les contrôles sont subclassés en l'occurrence par l'appel de CDialog::OnInitDialog.
    Si elle est prete, pourquoi ne s'affiche-t-elle pas ?
    Car le probleme est que si je fais quelques chose dans le OnInitDialog(), il sera fait avant que la DialogBox ne s'affiche, et donc dans mon cas le CProgressCtrl ne sera pas non plus visible.

    Citation Envoyé par farscape
    tu peux aussi essayer d'intercepter le message WM_ACTIVATE .
    pour lancer ton traitement.
    Si j'essaye d'editer ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Add/Remove from the function is impossible, because the parent class code is read only
    Ma classe de DialogBox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class CDialProgress : public CDialog


    Merci

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    Si elle est prete, pourquoi ne s'affiche-t-elle pas ?
    Car le probleme est que si je fais quelques chose dans le OnInitDialog(), il sera fait avant que la DialogBox ne s'affiche, et donc dans mon cas le CProgressCtrl ne sera pas non plus visible.
    la verite est peut etre ailleur ...
    dans ton traitement tu laisse le temps aux messages windows d'etre traités ?
    voir mon post dans la faq :
    http://c.developpez.com/faq/vc/?page...rk#PumpMessage
    Si j'essaye d'editer ce message :
    Code:
    Add/Remove from the function is impossible, because the parent class code is read only
    il sort d'ou ce message c'est l'ide qui dit ça dans classwizard ?
    le fichier .h n'est pas en mode read only ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par farscape
    la verite est peut etre ailleur ...
    dans ton traitement tu laisse le temps aux messages windows d'etre traités ?
    voir mon post dans la faq :
    http://c.developpez.com/faq/vc/?page...rk#PumpMessage
    Oui c'est c'est integre dans mes boucles de traitement.

    Citation Envoyé par farscape
    il sort d'ou ce message c'est l'ide qui dit ça dans classwizard ?
    le fichier .h n'est pas en mode read only ?
    C'est bon j'ai ferme et reouvert Visual et ca me l'a accepte.
    Par contre le comportement est le meme que pour le OnInitDialog():
    tout le traitement se fait avant d'ouvrir la DialogBox...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai trouve une feinte de sioux, un peu limite....

    Dans mon OnInitDialog je bouge ma souris sur la DialogBox et j'appel
    mon calcul dans le OnMouseMove


    En attendant mieux....

  7. #7
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    pourquoi t'appelle pas directement le calcul dans le initdial au lieu de le mettre dans le mousemove et appeller mousemove ??

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    car, comme je l'ai explique plus haut, si je fais ca, le calcul se fait avant de faire apparaitre ma DialogBox
    et donc mon progress qui est dessus, cense afficher l'etat d'avancement de mon calcul, ne s'affiche pas non plus.

  9. #9
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    je me rappel avoir fais ce genre de traitement ....,
    utilise un message privé WM_USER+100 (par exemple) place ton traitement en reponse à ce message et dans OnInitDialog tu fais un PostMessage(WM_USER+100). pour lancer le calcul.


  10. #10
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    j'ai mis un post dans le post it de la faq sur le sujet :
    http://www.developpez.net/forums/vie...144798#1144798

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup,
    j'etais justement en train de chercher coment recuperer mon WM_USER+100

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'une disquette de boot via mkbootdisk
    Par KORTA dans le forum Administration système
    Réponses: 6
    Dernier message: 30/07/2007, 17h26
  2. Pb pour la creation d'une bd
    Par Lebowsky dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/08/2004, 14h13
  3. Creation d'une vue dynamique ?
    Par Simeans2004 dans le forum Administration
    Réponses: 5
    Dernier message: 01/07/2004, 15h25
  4. creation d'une raccourcie dans le menu demarre
    Par kenshi dans le forum MFC
    Réponses: 14
    Dernier message: 11/09/2003, 14h59
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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