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

GTK+ avec C & C++ Discussion :

Affichage console des % et gestion fenetres multiples


Sujet :

GTK+ avec C & C++

  1. #1
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut Affichage console des % et gestion fenetres multiples
    Salut à tous.

    J'ai deux petits problèmes : tout d'abord un truc trés simple : pour afficher des % avec un printf, comment dois je m'y prendre ? (ASCII obligatoire ?)

    Puis ensuite, j'ai un programme avec une fenetre allegro et une fenetre gtk. Ma fenetre principale est la gtk, mais quand la partie allegro est terminée, la gtk ne s'ouvre que dans la barre des taches (orange clignotant sous windows xp) et il faut donc cliquer dessus pour l'afficher, ce qui ne fait pas trés professionel

    Merci d'avance , Skip

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    pour printf : %% dans le format affiche un % seul.
    Et sinon, tu peux aussi faire printf("%s", "Je ne suis pas sûr à 100% du contenu de cette chaîne");

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par skip78
    Puis ensuite, j'ai un programme avec une fenetre allegro et une fenetre gtk. Ma fenetre principale est la gtk, mais quand la partie allegro est terminée, la gtk ne s'ouvre que dans la barre des taches (orange clignotant sous windows xp) et il faut donc cliquer dessus pour l'afficher, ce qui ne fait pas trés professionel
    gtk_window_deiconify ou gtk_window_maximize devrait faire l'affaire

  4. #4
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par Médinoc
    pour printf : %% dans le format affiche un % seul.
    Et sinon, tu peux aussi faire printf("%s", "Je ne suis pas sûr à 100% du contenu de cette chaîne");
    Merci lol je m'en suis souvenu à l'instant (je me suis tout à coup souvenu de la voix de mon prof d'info nous le rabachant en debut de première année )

    Citation Envoyé par gege2061
    gtk_window_deiconify ou gtk_window_maximize devrait faire l'affaire
    Merci je vais voir ca

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Ca m'étonnerait que ça suffise, le orange clignotant est une protection de Windows pour éviter qu'une fenêtre "vole" le premier plan...

    En fait, il faudrait que ta fenêtre allegro ouvre la fenêtre gtk AVANT que "la partie allegro soit terminee" pour ne pas qu'une autre application récupère le premier plan entretemps...

  6. #6
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    erf ca ne fonctionne pas : le 'maximise' maximise bien la fenetre mais ca ne change rien au problème et le 'unminimise' ne change rien :/

  7. #7
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par Médinoc
    Ca m'étonnerait que ça suffise, le orange clignotant est une protection de Windows pour éviter qu'une fenêtre "vole" le premier plan...

    En fait, il faudrait que ta fenêtre allegro ouvre la fenêtre gtk AVANT que "la partie allegro soit terminee" pour ne pas qu'une autre application récupère le premier plan entretemps...
    C'est ce que je faisais avant mais j'ai besoin des infos recupérées par ma fonction allegro pour initialiser ma fenetre gtk

    Ah d'accord à moins que j'essaie d'integrer le gtk à l'allegro ...
    Mouais je vais tester

    edit : erf pas possible dans mon programme. Pour faire ca il faudrait que je refasse un projet, allegro au lieu de gtk ; et que j'integre les dlls gtk. Enfin bon faire l'inverse de ce que j'ai actuellement quoi

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Si ton programme n'est prévu que pour Windows tu pourrais peut-être voir du côté de certaines fonctions de l'API Win32 qui te permettent de faire pas mal d'actions sur les fenêtres, en trouver comme avec FindWindow, envoyer des messages aux fenêtres avec PostMessage ou SendMessage etc...

    Avec tout ca il t'est possible d'en changer des propriétés, de ramener des fenêtres en premier plan, de la minimiser, maximiser et j'en passe ... en fait tu pourrais tout faire !

    Maintenant si ton programme est portable c'est une autre histoire !

  9. #9
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    J'avais reussi en mettant la desinitialisation allegro en dernier, mais du coup mon programme fait n'importe quoi et qui plus est je ne peut plus fermer la fenetre gtk sans passer par la fenetre allegro qui est restée ouverte quelle galère

  10. #10
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par Franck.H
    Si ton programme n'est prévu que pour Windows tu pourrais peut-être voir du côté de certaines fonctions de l'API Win32 qui te permettent de faire pas mal d'actions sur les fenêtres, en trouver comme avec FindWindow, envoyer des messages aux fenêtres avec PostMessage ou SendMessage etc...

    Avec tout ca il t'est possible d'en changer des propriétés, de ramener des fenêtres en premier plan, de la minimiser, maximiser et j'en passe ... en fait tu pourrais tout faire !

    Maintenant si ton programme est portable c'est une autre histoire !
    hum comment je fais pour integrer des fonctions win32 à mon prog ? (je m'y connais pas du tout )

  11. #11
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par skip78
    hum comment je fais pour integrer des fonctions win32 à mon prog ? (je m'y connais pas du tout )
    Il te faut include le header
    et linker les libs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    user32
    gdi32
    kernel32
    Je pense que celà suffit

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Sauf que c'est <windows.h>...

    PS: Il y a peut-être d'autres options à régler dans le compilateur, mais j'en doute. Quel compilo utilises-tu ?

  13. #13
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par Franck.H
    Si ton programme n'est prévu que pour Windows tu pourrais peut-être voir du côté de certaines fonctions de l'API Win32 qui te permettent de faire pas mal d'actions sur les fenêtres, en trouver comme avec FindWindow, envoyer des messages aux fenêtres avec PostMessage ou SendMessage etc...
    L'utilisation de GTK est justement la pour ne pas utiliser l'API Win32 directement. Ce serait une erreur de conception de melanger les deux.

  14. #14
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par DaZumba
    L'utilisation de GTK est justement la pour ne pas utiliser l'API Win32 directement. Ce serait une erreur de conception de melanger les deux.
    Certes, je suis entièrement d'accord avec toi mais le fait d'utiliser GTK+ ne permet pas certaines actions au niveau du système de fenêtrage de Windows donc voilà ... mais bon, je ne fait que proposer une alternative mais moi même je ne ferais pas ce mélange mais quand y'a pas l'choix, dès fois faut faire des sacrifices et puis pour le moment toutes les autres solutions se sont terminées par un échec total d'après ce que j'ai pû voir

  15. #15
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par DaZumba
    L'utilisation de GTK est justement la pour ne pas utiliser l'API Win32 directement. Ce serait une erreur de conception de melanger les deux.
    Entièrement d'accord, dans le pire des cas tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <glib.h>
     
    #ifdef G_OS_WIN32
    /* code spécifique à Windows */
    #endif
    Déjà ça limitera le travaille de portage

  16. #16
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    pff c'est bien compliqué tout ca juste pour afficher une fenetre
    P.S. j'utilises DevC++

  17. #17
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    je ne trouve rien avec google je dois en être un (comprenne qui pourra )

    Si vous pouviez m'expliquer vite fais comment utiliser la fonction WM_SHOW et comment connaitre le nom de ma fenetre au passage ca serait sympa

  18. #18
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    WM_SHOW n'est pas une fonction, c'est un message Windows (un message du type qu'on associerait plutôt à un événement).

    ShowWindow() est une fonction, par exemple.
    Et on ne cherche pas de doc Windows sur Google, on cherche sur MSDN (http://msdn.microsoft.com/library)

  19. #19
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    mué j'avais été regarder sur msdn et point n'ai je trouvé ce que je cherchais ... Enfin je dois avouer que j'ai la flemme de lire l'intégralité du tuto

    Bon de toute facon j'ai essayé d'include <windows.h> ca donne un conflit avec GTK comme prevu ... Donc bon à moins de faire comme Allegro avec une formule magique ? je ne sais comment faire ...
    (#define ALLEGRO_NO_MAGIC_MAIN
    #include <allegro.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <gtk/gtk.h>)

  20. #20
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Bon de toute facon j'ai reussi à detourner le problème Je me pencherai sur les API windows une prochaine fois

    Merci à tous ^^

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

Discussions similaires

  1. [Data] Gestion des unités de persistance multiple
    Par Khaled.Noordin dans le forum Spring
    Réponses: 1
    Dernier message: 14/09/2012, 13h47
  2. [QThread] Problème de gestion des threads après connexions multiples sur un serveur
    Par vince-29 dans le forum Multithreading
    Réponses: 5
    Dernier message: 23/11/2010, 21h28
  3. Gestion des contraintes d'intégritées multiples
    Par erehcab dans le forum Zend_Db
    Réponses: 2
    Dernier message: 09/12/2009, 23h28
  4. des fenetres multiples
    Par clod83 dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 04/06/2008, 10h58
  5. affichage degradé des fenetres pendant les operations
    Par korben06 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/09/2007, 13h04

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