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

wxWidgets Discussion :

Redimensionnement de la fenêtre


Sujet :

wxWidgets

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 268
    Points : 393
    Points
    393
    Par défaut Redimensionnement de la fenêtre
    Bonjour,

    Je souhaite que la fenêtre principale ne puisse pas être redimensionnée. J'ai donc utilisé le flag !wxRESIZE_BORDER histoire de ne pas pouvoir redimensionner manuellement.

    Toutefois un dernier problème subsiste : quand je double clique sur la barre du haut de la fenêtre (au dessus du menu) la fenêtre est redimensionnée (une taille légèrement plus petite);

    Y a-t-il moyen d'éviter ce phénomène ?


    Edit : pour ceux qui ne voient pas de quoi je parle, essayez de double cliquer sur la barre de titre de Firefox par exemple (ou un autre logiciel). Vous verrez de quel redimensionnement je parle.
    En gros, je veux mettre en place une politique de "plein écran seulement" dans mon appli.

  2. #2
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Il y a surement l'event "EVT_MAXIMIZE" à récupérer et ne rien faire avec.

    Et cacher "wxMAXIMIZE_BOX" ne suffit pas ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 268
    Points : 393
    Points
    393
    Par défaut
    Cacher wxMAXIMIZE_BOX ne change pas le fait que si je double clique sur la barre de titre la fenêtre est redimensionnée. C'est mêem pire puisque je ne peux plus la remettre à sa taille normale vu qu'il n'y a plus le bouton.

    Sinon, j'ai récupérer l'event avec mon handler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void
    MyFrame::sizeEvent(wxMaximizeEvent& event)
    {
    	this->Maximize(true);
    	event.Skip();
    }
    Mais aucun changement.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 268
    Points : 393
    Points
    393
    Par défaut
    Bon, j'avais fait une petite étourderie :

    Il faut définir dans la table d'évènement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EVT_SIZE(MyFrame::sizeEvent)
    Et pour le handler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void
    MyFrame::sizeEvent(wxSizeEvent& event)
    {
    	this->Maximize(true);
    	event.Skip();
    }

    La fenêtre reste alors en mode "maximisée" quoiqu'il arrive !

  5. #5
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Désolé je n’avais pas compris que tu souhaitais laisser la fenêtre maximisé.

    Sinon je pense que remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void
    MyFrame::sizeEvent(wxSizeEvent& event)
    {
    	this->Maximize(true);
    	event.Skip();
    }
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void
    MyFrame::sizeEvent(wxSizeEvent& event)
    {
    }
    Devrait être équivalent si un premier "Maximize" a été appelé à la fin de la création de la fenêtre.

  6. #6
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Je viens de vérifier, le code ci-dessus ne fonctionne pas car l'appel arrive après le redimensionnement effectif de la fenêtre, et donc on ne peut pas le filtrer

    Sinon une solution pour enlever la "Titlebar" est d'utiliser
    C’est quasiment l’équivalent d’un "Maximize" la "Titlebar" en moins.
    On peut dessiner un équivalent de "Titlebar" si besoin est, c'est pas le top non plus , à moins qu'on ne souhaite pas de "Titlebar"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 268
    Points : 393
    Points
    393
    Par défaut
    Ben si il marche vu que je l'ai testé, mais je crois que tu n'as pas saisi exactement ce que je voulait faire :

    Par défaut, ma Frame est maximisée. Le seul cas qui peut la faire réduire est l'action de double cliquer sur la barre de titre.

    En cas de double clic, j'appelle donc mon sizeEvent qui se charge de re-maximiser la fenêtre. En tout cas c'est ce que je voulais, mais merci des remarques.

  8. #8
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Oui oui ce que tu as fais fonctionne, je n'ai pas dis le contraire, je voulais juste le simplifier et enlever l'effet visible de la frame qui se redimensionne (sur le "restore" déclenché par le double clique, et sur le nouveau "maximize" déclenché).

    Sinon essaye

    Pour voir si cela te convient ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 268
    Points : 393
    Points
    393
    Par défaut
    Non merci je ne veux pas le plein écran, ce que j'ai à l'heure actuelle me convient parfaitement, ne t'inquiète pas

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

Discussions similaires

  1. [Débutant]empécher redimensionnement d'une fenètre
    Par yottatiger dans le forum GLUT
    Réponses: 1
    Dernier message: 11/06/2006, 02h43
  2. Réponses: 5
    Dernier message: 28/04/2006, 12h21
  3. [C#] Empecher le redimensionnement d'une fenêtre
    Par Sydaze dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/11/2005, 17h27
  4. interdire le redimensionnement d'une fenêtre
    Par marsupile dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/02/2004, 21h48
  5. Redimensionnement d'une fenêtre Directx
    Par Francky033 dans le forum DirectX
    Réponses: 2
    Dernier message: 28/09/2003, 18h53

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