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

MFC Discussion :

[MFC]Menu systeme EnableMenuItem()


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Par d�faut [MFC]Menu systeme EnableMenuItem()
    Bonjour,

    J'ai un probleme dans une application avec les MFC et les fonctions EnableMenuItem() et GetSystemMenu().
    Dans une application, je desire empecher la fermeture d'une fenetre en grisant et desactivant la croix du menu de la fenetre
    et de l'application.

    je cr�e donc une fonction DeleteMenuSys() dans CMainFrame et une autre dans la CChildFrame.
    les deux sont pratiquement identiques et utilisent EnableMenuItem() et GetSystemMenu().
    Lors de l'execution, les X sont bien gris�es et, lorsque je clique dessus, rien ne se passe au demarrage (ce qui est normal).
    Lorsque je met la fenetre client en pleine page (clic sur le rectangle du menu systeme), alors, si je clique sur la croix, bien
    que gris�e, la fenetre se ferme quand m�me !...

    Quelqu'un aurait-il eut le probleme ?
    De quoi cela peut il provenir ?

    Merci pour votre aide.

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut, je te conseille de proceder autrement:
    intercepter le message de fermeture par la croix et de refuser la fermeture si
    il y a lieu:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // ----------------------------------------------------------------------------
    void MyMainFrame::OnSysCommand(UINT nID, LPARAM lParam) 
    {
    	// TODO: Add your message handler code here and/or call default
    	// test sur la fermeture de l'application
    	if(nID==SC_CLOSE)
    	{
               if(m_bNotOkForClose) return;
            }
    	CMDIFrameWnd::OnSysCommand(nID, lParam);
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Par d�faut [MFC]Menu systeme EnableMenuItem()
    Comment interceptes-tu le message correspondant � OnSysCommand() dans une fenetre ?

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    meme chose au niveau de la mdichild de la fenetre .


  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Par d�faut [MFC]Menu systeme EnableMenuItem()
    C'est-�-dire ?

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    apres verifications ,
    le code donne fonctionne bien pour empecher la croix sur l'application pour les views formview etc ...
    2 solutions passer par la fontion
    virtual BOOL CanCloseFrame( CFrameWnd* pFrame ); de la classe document
    dans ton document template (CMultiDocTemplate ou CSingleDocTemplate)
    precise une classe document dont cette fonction est surchargee.
    ou alors la gestion du message SC_CLOSE sur la mdi a travers le message
    ON_WM_SYSCOMMAND de la mdichildwnd

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    pDocument = new CMultiDocTemplate(
    		IDR_WSGTYPE,
    		RUNTIME_CLASS(CMyDoc),   // redefinir CanCloseFrame sur cette classe
    		RUNTIME_CLASS(MyMDIChildWnd), // standard MDI child frame
     ou reprendre la main sur onsyscommand sur cette classe
    	RUNTIME_CLASS(CMyFormView));
    	AddDocTemplate(pDocument);

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Par d�faut [MFC]Menu systeme EnableMenuItem()
    C'est OK, merci beaucoup, gr�ce � l'utilisation de :

    OnSysCommand(UINT nID, LPARAM lParam)
    et/ou CanCloseFrame( CFrameWnd* pFrame )

    je vai reussir � regler mon probl�me de fermeture de fenetre.

  8. #8
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    si c'est bon n'oublie pas de mettre resolu

Discussions similaires

  1. [MFC] Menu inaccessible apr�s changement de nom
    Par Philippe320 dans le forum MFC
    R�ponses: 5
    Dernier message: 07/12/2005, 22h10
  2. [MFC] Menu dynamique
    Par barthelv dans le forum MFC
    R�ponses: 7
    Dernier message: 31/05/2005, 10h44
  3. [MFC] Menu syst�me d'un dialog box
    Par tonyskn dans le forum MFC
    R�ponses: 2
    Dernier message: 24/05/2004, 21h50
  4. R�ponses: 3
    Dernier message: 24/05/2004, 16h20
  5. Hauteur en pixel du menu systeme de la Form ?
    Par hepar dans le forum C++Builder
    R�ponses: 2
    Dernier message: 26/02/2004, 10h45

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