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] rendre une boite de dialogue inactive


Sujet :

MFC

  1. #1
    Membre régulier Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Points : 84
    Points
    84
    Par défaut [MFC] rendre une boite de dialogue inactive
    Bonjour,

    Je voudrais rendre une boite de dialogue inactive. Je m'explique, dans cette boite de dialogue, j'ai un bouton qui demande une prise d'image à la caméra. Or quand j'appuie sur mon bouton rien ne se passe par contre quand je ferme la fenetre par Ok ou Cancel, la prise d'image a lieu. Je voudrais que ma fenetre de dialogue reste inactive et quand je clique dessus elle redevienne active.

    Pouvez vous m'aider.

    Cordialement

    Jérôme Seneschal

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Points : 113
    Points
    113
    Par défaut
    Salut,
    la fonction CWnd::SetFocus devrait t'aider.

    Tu peux jeter aussi un coup d'oeil à MSDN, voir les fonctions membres de la classe CWnd, il y a peut-être d'autres fonctions plus appropriées.

    Bonne chance

  3. #3
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    plus Précisément OnSetFocus.

  4. #4
    Membre régulier Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Points : 84
    Points
    84
    Par défaut

    Bonsoir,
    Vous auriez pas un exemple de OnSetFocus, j'ai essayé plusieurs chose mais cela ne marche pas.
    J'ai une classe AcquiFondDlg qui gere mon dialogue et je voudrai rendre ce dialogue inactif

    Merci beaucoup

    Jérôme

  5. #5
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    bonsoir ,
    ça n'a pas ete dit mais ton projet est une boite de dialogue ?
    (project dialog based)
    apres verif le traitement des notifications onsetfocus ou killfocus ne donnent pas satisfaction .
    il vaut mieux mettre en place la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CTestsDiversDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 
    {
    	CDialog::OnActivate(nState, pWndOther, bMinimized);
     
    	// TODO: Add your message handler code here
     
    }
    pour cela dans classwizard apres selection de la classe dialog
    selectionner l'onglet info et mettre window dans la combobox message filter
    revenir sur l'onglet des messages et selectionner le message

    WM_ACTIVATE ce qui produit la fonction ci-dessus
    place ton code dedans.
    ça devrait etre bon.

  6. #6
    Membre régulier Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Points : 84
    Points
    84
    Par défaut
    Salut,

    Merci, j'essaierai cela ce soir.
    Oui j'ai oublié de préciser mais mon appli est une SDI avec une fenetre gérant l'affichage d'image et une boite de dialogue controle camera. C'est boite de dialogue doit etre rendu inactive quand j'appuie sur un bouton visualisation, mais doit toujours etre présente pour que je puisse modifier les paramètres. Pour l'instant je doit appuyer surr OK ou Cancel ou la croix de fermeture de la boite pour que la visualisation d'image est lieu

    Merci beaucoup

    Jérôme

  7. #7
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    aie ,j'ai base ma reponse sur le fait que ce soit un projet dlg
    dans le cas d'une boite de dialogue modal tu ne pourras pas perdre le focus sur la fenetre .
    et ce buton de visu ou il est situe sur la fenetre dialogue ?

  8. #8
    Membre régulier Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Points : 84
    Points
    84
    Par défaut
    Et bien, il est dans la fenêtre de dialogue, comment dire ou?
    J'ai une classe Acqui...Dlg qui dérive de Cdialog qui est lié à cette boite de dialogue.
    je l'affiche en appelant aquidlg.domodal(); quand je veux faire une acquisition
    Une fois dans cette boite, quand j'appuie sur le bouton d'acquisition, je voudrais que la main revienne sur la fenetre d'affichage, celle ou il y a la barre d'outil de mon appli SDI et que la boite de dialogue devienne inactive. Une fois que je clique dessus, je voudrais qu'elle redevienne active.

    Merci beaucoup

    Jérôme

  9. #9
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    bon je pense avoir la solution de ton pb sur le site codeguru il y a un post pour rendre une boite de dlg non modal tres simplement :
    http://www.codeguru.com/dialog/NonModalDialog.html
    j'ai essaye ça fonctionne bien.
    apres tu peux mettre en place les messages onSetFocus sur la dialogue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2006, 13h20
  2. Réponses: 4
    Dernier message: 26/01/2006, 16h13
  3. Réponses: 17
    Dernier message: 18/10/2005, 21h19
  4. [MFC] Dessin dans une boite de dialogue .
    Par Platypus dans le forum MFC
    Réponses: 8
    Dernier message: 21/07/2005, 11h21
  5. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59

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