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 :

à propos d'un Splash


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut à propos d'un Splash
    Bonjour,

    Je code en c++ et j'utilise GDI

    Est-ce qu'il est possible d'initialiser une pop-up splash en tout debut de main, de poursuivre l'exécution du code et de tuer le splash en toute fin de main ?

    Je ne trouve pas le moyen de faire ça... (le code reste bloqué jusqu'à ce que le splash soit killé... donc impossible de poursuivre l'exécution du code -et par voie de fait de tuer le splash en fin de main-)

    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    il faut que tu mette ton splash dans un thread séparé, avec un timeout ou un evenement exterieur pour le terminer...

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut
    Merci toxcct.

    C'est résolu en ce qui me concerne

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sansblague Voir le message
    C'est résolu en ce qui me concerne
    et pour les autres qui auraient le meme probleme a l'avenir, t'as résolu ca comment ?

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Je code en c++ et j'utilise GDI

    Est-ce qu'il est possible d'initialiser une pop-up splash en tout debut de main, de poursuivre l'exécution du code et de tuer le splash en toute fin de main ?
    Houla je crois qu'il y a confusion totale ! Un bon conseil se procurer un tutoriel ou bon livre sur les MFC.
    Il n'ya pas de main avec MFC void main() ce n'est que pour les porgrammes consoles

    Citation Envoyé par toxcct Voir le message
    il faut que tu mette ton splash dans un thread séparé, avec un timeout ou un evenement exterieur pour le terminer...
    ce n'est pas une bonne utilisation des threads..
    Un thread c'est un processus en parallèle pour effectuer des taches pertinentes.
    Si le Splash Screen reste bloqué c'est que le code est mal foutu.
    Il suffit de prendre un CTimer ou un CTimeSpan mais pas un thread qui ne sera pas vraimentutile pour afficher un splash screen

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    ce n'est pas une bonne utilisation des threads..
    Un thread c'est un processus en parallèle pour effectuer des taches pertinentes.
    il existe des WorkerThreads, et des UIThreads, justement pour différencier des simples taches "batch" en parallele de celles qui touchent au graphisme.
    ici, on a bien la notion de parallélisme, a moins que le splash screen ne serve a rien (dans le sens ou il n'y a effectivement aucun traitement en parrallele de son affichage).

    et puis attention a ton vocabulaire, un thread, ce n'est pas un processus; c'est un processus qui peut contenir un ou plusieurs threads.

    donc ici, tu m'expliques comment tu veux afficher un splashscreen et faire des traitement paralleles a moins de coder ca super crade en mixant le tout ?

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut
    Citation Envoyé par toxcct Voir le message
    et pour les autres qui auraient le meme probleme a l'avenir, t'as résolu ca comment ?
    Exactement comme tu dis (thread et timer)

  8. #8
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Citation Envoyé par toxcct Voir le message
    donc ici, tu m'expliques comment tu veux afficher un splashscreen et faire des traitement paralleles a moins de coder ca super crade en mixant le tout ?
    Ben chez moi un splash screen c'est une fenêtre d'information au démarrage...qui affiche juste des infos..
    L'auteur "Sansblague" ne dit pas quel type de projet c'est si c'est un projet fenêtré ou pas GUI ou console

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Ben chez moi un splash screen c'est une fenêtre d'information au démarrage...qui affiche juste des infos..
    L'auteur "Sansblague" ne dit pas quel type de projet c'est si c'est un projet fenêtré ou pas GUI ou console
    certes, et alors ? quand tu affiche ton splash, tu ne fais rien en meme temps ? ou alors tu fais tes traitements directement depuis l'écran ?
    moi c'est ca que j'appelle coder "crade". ne pas tenir compte du modele MVC, et tout mélanger. dans ce patern, le splash fait partie de la couche "Vue", alors que les traitements internes font partie de la couche "Controleur".

  10. #10
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Citation Envoyé par toxcct Voir le message
    moi c'est ca que j'appelle coder "crade". ne pas tenir compte du modele MVC, et tout mélanger. dans ce patern, le splash fait partie de la couche "Vue", alors que les traitements internes font partie de la couche "Controleur".
    je ne comprends absolument rien à ce que tu écris .
    Tu dis le splash fait partie de la couche "Vue" or la personne qui a un problème ne nous a pas parlé de modèle Document /Vue comme dans les projets SDI/MDI mais plutot d'un projet console puisqu'il nous parle de "main"

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    je ne comprends absolument rien à ce que tu écris .
    Tu dis le splash fait partie de la couche "Vue" or la personne qui a un problème ne nous a pas parlé de modèle Document /Vue comme dans les projets SDI/MDI mais plutot d'un projet console puisqu'il nous parle de "main"
    bien, effectivement, si on ne se comprend pas sur des termes simples... le patern MVC n'a rien a voir avec un SDI/MDI.
    c'est une "bonne pratique" que tous les expérimentés du développement informatique devraient employer, qui dicte juste de séparer les couches "présentation", "logique (ou métier)", et l'"accès aux données".
    Tu ne dois simplement pas mettre de code qui va controler tes regles de gestions dans un écran, et encore moins un accès direct à une base de données quelconque par exemple...

  12. #12
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Est-ce qu'il est possible d'initialiser une pop-up splash en tout debut de main, de poursuivre l'exécution du code et de tuer le splash en toute fin de main ?
    C'est quel type de projet étant donné que la question est dans un forum des applications fénétrées genre MFC ??? Fais-tu une application Win32 et donc main serait WinMain()

    Je ne trouve pas le moyen de faire ça... (le code reste bloqué jusqu'à ce que le splash soit killé... donc impossible de poursuivre l'exécution du code -et par voie de fait de tuer le splash en fin de main-)
    Le Splash Screen ne serait-ce pas une sorte de boite de dialogue tel que l'a décrit Mat.M. Et si c'est le cas il faut la créée en mode amodale afin de ne pas bloquer l'exécution du code du thread en cours.

    il faut que tu mette ton splash dans un thread séparé, avec un timeout ou un evenement exterieur pour le terminer...
    Je trouve la solution du thread un peu savante. Mais une alternative plus simple serait de lancer la splash screen en mode amodale et même dans le thread principale de l'application. De cette manière le splash ne bloque pas le thread auquel il appartient.

    Et puis un splash n'est pas fais pour perdurer jusqu'à la fin de l'exécution d'un programme mais plutôt jusqu'à la fin de son démarrage.

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

Discussions similaires

  1. A propos de Last_insert_id
    Par f-demu01 dans le forum Administration
    Réponses: 2
    Dernier message: 26/03/2003, 08h32
  2. A propos depth buffer
    Par j.yves dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h41
  3. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  4. Fonctionnement de la compression DivX
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 20/09/2002, 14h10
  5. A propos du composant DBGrid
    Par _Rico_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/07/2002, 09h18

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