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 :

Differencier esc and quit dans OnCancel


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Par défaut Differencier esc and quit dans OnCancel
    Bonjour,

    j'ai une application dialog-based.
    J'ai courcircuite les handler OnOK et OnCancel pour eviter
    que l'application se ferme n'importe quand.

    Mais je voudrais quand meme que lon puisse sortie avec la croix
    en haut a droite.

    Donc dans ONCancel comment differencier les deux cas suivant :
    - utilisation de escape
    - click sur la crois (ou quit dans le menu systeme)

    merci

    Herve

  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,
    une possibilité:
    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
     
    void CDlgAdvanced::OnCancel() 
    {
        // TODO: Add extra cleanup here
        CRect Rect;
        GetWindowRect(&Rect);
        int ny=GetSystemMetrics(SM_CYCAPTION);   
        const MSG* msg = GetCurrentMessage();
        if(msg->pt.y<=Rect.top+ny) 
        {
            // la croix.
            TRACE("\nla croix");
        }
        CDialog::OnCancel();
    }
    le plus sûr pour tester la femeture par la croix:
    Intercepter WM_SYSCOMMAND et tester SC_CLOSE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void CDlgAdvanced::OnSysCommand(UINT nID, LPARAM lParam) 
    {
        // TODO: Add your message handler code here and/or call default
          if(nID==SC_CLOSE)
          {
              TRACE("\nLa Croix");
          }
        CDialog::OnSysCommand(nID, lParam);
    }

Discussions similaires

  1. [VB.NET]Drag and Drop dans une Listview
    Par gégécap dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/08/2006, 18h41
  2. find and replace dans word
    Par Thargor dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 21/06/2006, 15h01
  3. [SQL] ordre de priorité (AND, OR) dans une condition if
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/06/2006, 21h12
  4. Drad and Drop dans une applet
    Par remyli dans le forum Applets
    Réponses: 2
    Dernier message: 19/12/2005, 16h46
  5. Drag and drop dans un TTreeView
    Par BigBenQ dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/10/2005, 14h57

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