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

C++Builder Discussion :

MessageDlg + Focus


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut MessageDlg + Focus
    Bonjour,
    Mon problème est trés simple, J'utilise la fonction MessageDlg(..,..,..,..) pour afficher un message à l'utilisateur.
    Cependant, le focus est donné sur le premier bouton, càd dans le cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(MessageDlg("coucou", mtConfirmation, TMsgDlgButtons()<<mbYes<<mbNo<<MbCancel,0) == mrYes)
    {
      ...
      ...
    }
    else
    {
      ...
      ...
    }
    le focus est sur le buton [YES], je cherche à ce que le focus soit sur le bouton [NO] par exemple.

    Es-ce que quelqu'un à une idée comment le faire.

    @+

  2. #2
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    une idée "bourrin" serait de lancer un Timer avant ta commande MsgDlg et le faire simuler un appuie sur le bouton droite du clavier.

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Mais si je lance MessageDlg depuis une class, alors je dois déclarer un TTimer. Oui OK mais ya t'il une autre alternative.
    Merci.

    Je pense que peut-être il y a une autre fonction qui le permet.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Par défaut
    Un autre idee "bourrin":

    Passe ton message a un 'Box dialogue' que tu construit, et sur ce dialogue tu donne le 'NO' bouton le TabOrder 0.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    C'est souvent plus facile avec l'API qu'avec les ersatz.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (::MessageBox(this->Handle, "Coucou", "MyMsgBox", MB_YESNOCANCEL | MB_DEFBUTTON2)==IDYES)
    {
    }
    http://msdn.microsoft.com/library/de...messagebox.asp

    yarp
    www.senosoft.com

  6. #6
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    OK, vous avez raison,
    Merci.
    voici ce que j'ai utiliser, j'ai ajouter une iconne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (::MessageBox(this->Handle, "Coucou", "MyMsgBox", MB_YESNOCANCEL | MB_DEFBUTTON2|MB_ICONINFORMATION)==IDYES)
    {
      ...
      ...
    }

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    yarp a ecrit:
    C'est souvent plus facile avec l'API qu'avec les ersatz.
    J'ai teste de cette facon et cela marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    (MessageBox(this->Handle, "Coucou", "MyMsgBox", MB_YESNOCANCEL | MB_DEFBUTTON2)==IDYES);
    }

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par défaut
    Je ne te suis pas ?

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

Discussions similaires

  1. Focus sur un bouton de MessageDlg
    Par colorid dans le forum Langage
    Réponses: 3
    Dernier message: 06/08/2011, 10h58
  2. Réponses: 2
    Dernier message: 01/05/2006, 18h02
  3. Comment être sure que mon appli prenne le focus ?
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/12/2002, 15h00
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. focus en C
    Par killpilot dans le forum C
    Réponses: 8
    Dernier message: 19/04/2002, 19h19

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