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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    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
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    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
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    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 Expert
    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
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    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
    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
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    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