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

Visual C++ Discussion :

Désactivation de la fenêtre principale lors des MessageBox


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Désactivation de la fenêtre principale lors des MessageBox
    Bonjour,

    Je suis novice en programmation C++.
    J'ai un problème de désactivation de la fenetre principale lorsque j'affiche des messagesBox.

    Pour un message de confirmation de fin de programme, j'utilise ce code la qui fonctionne plutot pas mal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    void GearodMain::OnMenuGearodClose()
    {	EnableWindow(false);  
    	SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
    	if((::MessageBox(m_hWnd ,"Voulez-vous vraiment quitter Gearod 2.0 ?","Gearod 2.0", MB_ICONQUESTION | MB_YESNO)==IDYES))
    	{
    		CDialog::EndDialog( IDOK ) ;
    	}
    	else
    	{
    	EnableWindow(true);
    	SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
     
    	}
     
    }
    Mais lorsque j'essaie de créer de la meme manière des messagebox sous les autres modules de mon programme. Visual me génère des erreurs sur EnableWindow(true); ou SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);.

    Il ne connait plus la variiable &wndTop et manque un argument à EnableWindow.

    Si quelqu'un voit le problème, Merci de votre aide

    A+

  2. #2
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    deja je ne vois pas l'interet de EnableWindow et SetWindowPos vu que messageBox est modal
    il y a du linge sur la corde à linge

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    a vrai dire je sais pas (dailleurs je sais pas ske ve dire modal non plus)

    Cest skon ma conseillé sur le site et sa a lair d emarché mé si ta d infos jsui preneur

    A+

  4. #4
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    une fenetre modale signifie que la nouvelle fenetre est au premier plan et qu'elle "désactive" la fenetre au second plan.

    L'exemple le plus simple: depuis ton navigateur préféré, tu fais "enregistrer sous". La fenetre d'exploration de repertoire est modal, ton navigateur est au second plan et désactivé (tu ne peux plus changer la taille, acceder au bouton etc...)

    le contre exemple (fenetre non modale) : tu fais "controle + F" depuis ton navigateur, cela devrait faire apparaitre le module de recherche et la tu peux continuer à te balader sur ton navigateur


    en gros (d'apres moi) vire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EnableWindow(false);  
    SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EnableWindow(true);
    SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
    il y a du linge sur la corde à linge

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Ok bien vu.
    Je sais pas pourquoi j'avais rajouté cela, il me semblait que sa marché pas. Mais tu as raison sans, sa marche bien.

    Donc, s j'ai bien compris, dans toutes les autres parties de mon programme, je n'ai pas besoin de rajouter de lignes de code, la messagebox (et la fenetre principale) aura exactement le meme comportement.

    Merci

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

Discussions similaires

  1. Comment afficher des JPanels dans ma fenêtre principale JFrame en fonction du menu choisi?
    Par methodman225 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 22/08/2010, 00h40
  2. Réponses: 6
    Dernier message: 07/07/2009, 15h06
  3. Comment insérer des fenetres (JFrames) à l'intérieur d'une fenêtre principale?
    Par smendou dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/06/2008, 22h51
  4. Désactiver les messages du noyau lors des montages
    Par FloMo dans le forum Administration système
    Réponses: 2
    Dernier message: 02/02/2008, 13h32
  5. Réponses: 5
    Dernier message: 09/10/2007, 18h27

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