p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    Inscrit en
    décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 7
    Points : 3
    Points
    3

    Par défaut Gestion des évènements en amont

    Salut,

    Je débute avec wxWidgets, je veux imposer une condition au déplacement d'une fenêtre.(héritée de wxframe)

    Comment je fais ça ? Pour le moment j'ai mis ma condition dans un EVT_MOVE qui corrige le placement de la fenêtre si il n'est pas satisfaisant, mais le déplacement se fait quand même peut on le bloquer, ou la gestion de l'event se fait après son exécution?

    Je me demandais si de manière plus simple il était possible d' "override" la fonction move à proprement parler de wxWindow quite à l'appeler ensuite avec super si ma condition est remplie.

    Voilà, si vous pouviez m'éclairer là dessus ce serait pas mal.

    ps: je fais ça pour avoir des fenêtres enfant style photoshop qui bougent en même temps que leur parent et qui ne peuvent pas en sortir, je crois pas que ça existe nativement dans wxWidget mais si vous le savez, enfin même si ça existe je suis curieux pour la gestion des évènements en amont de leur exécution.

  2. #2
    Membre confirmé Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 163
    Points : 271
    Points
    271

    Par défaut

    Salut.

    Sous Windows, tu peux remplacer la méthode style "WndProc" pour ta classe dérivée de wxFrame.
    Dans ce cas, c'est elle qui sera appelée, et tu pourras gérer tous les événements, même ceux qui ne sont pas directement pris en charge par wxWidgets, tel que WM_MOVING.

    Voici un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WXLRESULT MainFrame::MSWWindowProc(WXUINT nMsg, WXWPARAM wparam, WXLPARAM lparam)
    {
        if (nMsg==WM_MOVING)
        {
            // Récupération de la future position de la fenêtre
            RECT* rc=(RECT*)lparam;
            // Il est possible de "bricoler" les coordonnées avant de les laisser filer
            // vers la méthode de la classe de base
            // Par exemple, pour figer la position à x=50 et y=100 :
            rc->left=50;
            rc->top=100;
        }
        return wxFrame::MSWWindowProc(nMsg, wparam, lparam);
    }
    Par contre, je ne connais pas la combine pour faire la même chose sous Linux (et encore moins sous Mac).

    @+
    Xav'

  3. #3
    Invité de passage
    Inscrit en
    décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 7
    Points : 3
    Points
    3

    Par défaut

    Merci beaucoup pour ta réponse wxXav, c'est assez pratique cette manière d’accéder a win32 comme ça, même si ce n'est pas multiplatforme mais je ne comprend surement pas la manière dont wxwidget se place dans le système.

    Pour mon but final je me suis aperçu que ça s'appelait "mdi" je ne connaissait pas cet acronyme, c'est implémenté dans wxWidget apparemment ouf.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/02/2006, 20h59
  2. Gestion des évènements Netscape 7.0
    Par RATHQUEBER dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 19/12/2005, 16h26
  3. Problème avec la gestion des événements
    Par CynO dans le forum JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 10h07
  4. [JTable] gestion des événements
    Par soulhouf dans le forum Tables
    Réponses: 4
    Dernier message: 19/08/2005, 13h21
  5. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débutant
    Réponses: 7
    Dernier message: 23/06/2005, 19h04

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