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

Windows Forms Discussion :

Commande d'événement pour maximiser la Fenêtre


Sujet :

Windows Forms

  1. #1
    Membre averti

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 177
    Points : 321
    Points
    321
    Par défaut Commande d'événement pour maximiser la Fenêtre
    Bonjour! Voilà je suis en train d'utiliser DirectX en C# avec une application WindowForm. Une fois que tout est initialiser, je lance l'application et une fois la fenêtre apparut, je voudrais dès que je clique sur le rectangle pour maximiser, il me l'affiche en Plein-Ecran!

    Je précise que je travaille sous DirectX 9.0 et je veux juste savoir quelle est la méthode d'évènement pour maximiser la fenêtre.

    Voila, merci et bonne Journée...


  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    il n'y a pas d'évènement correspondant à la maximisation de la fenêtre
    par contre, dans l'évènement Resize ou SizeChanged, tu peux vérifier le WindowState pour voir si la form est maximisée

  3. #3
    Membre averti

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 177
    Points : 321
    Points
    321
    Par défaut
    Citation Envoyé par tomlev Voir le message
    il n'y a pas d'évènement correspondant à la maximisation de la fenêtre
    par contre, dans l'évènement Resize ou SizeChanged, tu peux vérifier le WindowState pour voir si la form est maximisée
    Voilà donc je crée une nouvelle instance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            public void ControlRender()
            {
                this.SizeChanged += new EventHandler(AOTC_SizeChanged);
            }
     
            void AOTC_SizeChanged(object sender, EventArgs e)
            {
                Engine3D.fullScreen = true; // Rien ne se passe
            }
    avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            public AOTC()
            {
                InitializeComponent();
                ControlRender();
            }
    Bon en mettant un MessageBox.Show("Test"); au-dessus de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Engine3D.fullscreen = true;
    pour faire le test de maximisation de la fenêtre!

    Je maximise ma fenêtre, il m'affiche le message , mais je n'arrive toujours pas à le mettre en plein écran ! J'ai toujours Le cadre autour mais maximiser.


  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Engine3D, c'est une classe à toi ?
    Il ne suffit peut-être pas de mettre fullscreen à true... par exemple, peut-être que cette propriété n'est prise en compte qu'à l'initialisation

    D'autre part, le code que tu as mis dans SizeChanged est un peu juste il me semble... parce que là çà met en fullscreen quelle que soit la nouvelle taille ! Il faudrait faire qqch comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            void AOTC_SizeChanged(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Maximized)
                {
                    Engine3D.fullScreen = true;
                }
                else
                {
                    Engine3D.fullScreen = false;
                }
            }

  5. #5
    Membre averti

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 177
    Points : 321
    Points
    321
    Par défaut
    Non! Rien ne change, mais j'y travaille pour l'instant!


  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par terminator59140 Voir le message
    Non! Rien ne change, mais j'y travaille pour l'instant!
    je sais que le code que j'ai posté ne règlera pas le problème, c'était juste pour anticiper un autre problème à venir...

    Mais tu ne réponds pas à ma question : c'est une classe à toi Engine3D ?
    Et comment est déclaré fullscreen ? champ, propriété ? si c'est une propriété, y a-t-il dans le set autre chose que l'affectation de la valeur à un champ ?

  7. #7
    Membre averti

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 177
    Points : 321
    Points
    321
    Par défaut
    Citation Envoyé par tomlev Voir le message
    je sais que le code que j'ai posté ne règlera pas le problème, c'était juste pour anticiper un autre problème à venir...

    Mais tu ne réponds pas à ma question : c'est une classe à toi Engine3D ?
    Et comment est déclaré fullscreen ? champ, propriété ? si c'est une propriété, y a-t-il dans le set autre chose que l'affectation de la valeur à un champ ?
    Oui c'est une class static qui me permet de faire respirer mon code principale.

    Pour fullscreen, elle est déclaré en booléen (true or false). Que je fait un "Refactoriser|Encapsuler le champ..."

    Qui me donne :
    Code Engine3D:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            static bool FullScreen = false;
     
            public static bool fullScreen
            {
                get { return Engine3D.FullScreen; }
                set { Engine3D.FullScreen = value; }
            }
    Car celle-ci permettra d'activer mon autre instance dans l'initialisation de DirectX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            private static void FullScreenMode(PresentParameters pp, bool mode)
            {
                if (mode)
                {
                    pp.Windowed = false;
                    pp.FullScreenRefreshRateInHz = 60;
                }
                else
                {
                    pp.Windowed = true;
                }
            }
    Cette instance est là pour le bool de fullscreen! Et cette instance est déclarée après l'activation de PresentParameters.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                PresentParameters presentParam = new PresentParameters();


  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ok, donc comme je disais, il ne suffit pas de passer fullScreen à true... il faut sans doute que tu appelles une fonction DirectX pour passer effectivement en plein écran, mais je connais rien à DirectX, donc de ce côté là je peux pas t'aider

  9. #9
    Membre averti

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 177
    Points : 321
    Points
    321
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ok, donc comme je disais, il ne suffit pas de passer fullScreen à true... il faut sans doute que tu appelles une fonction DirectX pour passer effectivement en plein écran, mais je connais rien à DirectX, donc de ce côté là je peux pas t'aider
    Justement pour la fonction plein écran elle est dans le PresentParameters();

    Qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private static void FullScreenMode(PresentParameters pp, bool mode)
            {
                if (mode)
                {
                    pp.Windowed = false;
                    pp.FullScreenRefreshRateInHz = 60;
                }
                else
                {
                    pp.Windowed = true;
                }
            }
    Au lieu de la mettre directement dans l'initialisation de mon instance, je la dérive par celle au-dessus. et la par exemple si je m'est mode à true, ma fenêtre est en plein-écran et si elle est à false elle est en mode fenêtre.


Discussions similaires

  1. commandes pour lancer une fenêtre de formatage sdformatter
    Par morjana dans le forum Général Python
    Réponses: 1
    Dernier message: 19/08/2009, 13h50
  2. Quel logiciel pour faire des fenêtres ?
    Par FFF dans le forum EDI et Outils pour Java
    Réponses: 11
    Dernier message: 15/10/2005, 10h52
  3. Réponses: 5
    Dernier message: 09/09/2005, 17h51
  4. Maximiser une fenêtre JInternalFrame
    Par kaiser2003 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 13/03/2005, 13h14
  5. Réponses: 5
    Dernier message: 21/12/2004, 12h00

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