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] Cr�ation manuelle de contr�le bouton


Sujet :

MFC

  1. #1
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par d�faut [MFC] Cr�ation manuelle de contr�le bouton
    Bonjour � tous les informaticiens (inadapt�s quoi original.gif)

    Je voulais vous soumettre un petit soucis que je rencontre dans le d�veloppement d'un petit jeu de cartes en visual c++ 6 (introductory edition, ou un truc dans le genre... bref, la version gratuite quoi).

    Je cherche � cr�er manuellement un bouton afin de valider le choix de cartes.

    De fait,
    Un des attributs de ma classe est : CButton *bouton;
    Dans le constructeur de ma classe, j'ai allou� ce pointeur.
    Et dans le OnInitialUpdate de ma vue, j'ai cr�� une instance de ce bouton (avec bouton->Create(je vous passe les arguments).

    Mon probl�me arrive ici : je veux afficher ce bouton qu'� un certain moment du d�roulement de mon appli, et il s'affiche bien.
    Mais lorsque que je clique sur les cartes du jeu, le bouton s'efface et ne revient pas.
    (pour l'afficher, j'utilise bouton->ShowWindow(SW_SHOW)clindoeil.gif

    J'ai l'impression qu'il revient � son �tat initial � chaque fois que la fen�tre se r�actualise.
    Et fait un ShowWindow(SW_SHOW) alors que le bouton est d�j� affich� le rend invisible.

    J'ai tent� de positionner des flag � 0 ou 1 suivant les cas, mais rien n'y a fait sad.gif

    J'ai m�me tent� de l'afficher d�s le d�part de l'appli (au moment du Create) mais le bouton s'efface au moment du premier clic sur une de mes cartes...

    Note : La gestion des clics de souris sur les cartes est trait� avec OnMouseMove pour r�cup�rer les coordonn�es r�elles de ma souris, et avec OnLButtonDown pour la gestion de la position des cartes sur l'�cran.

    Derni�re note : Il semble en fait que le bouton ne disparaisse pas compl�tement...

    En fait, si, une fois qu'il n'apparait plus � l'�cran, je clique � l'endroit o� il doit �tre sur l'�cran, il r�apparait.

    Bien sur, jusqu'� ce que je reclique sur un autre endroit de l'�cran, auquel cas il redisparait :/

    Quelqu'un y comprend quelque chose ?

    Merci d'avance � tous clindoeil.gif

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Par d�faut
    Bonjour,

    En visualC++ 6.0 je te conseille de creer ton bouton dans tes ressources classiquement � l'endroit ou tu veux qu'il soit.
    De lui ajouter un variable membre de type control a ton CButton (nomm� par ex m_mybutton.

    dans ton code si tu veux faire disparaitre ou apparaitre le bouton

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    	m_mybutton.ShowWindow(SW_HIDE);
     
    	m_mybutton.ShowWindow(SW_SHOWNORMAL);
    bon courage

  3. #3
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par d�faut
    Merci de ta r�ponse

    Je tenterais ca d�s ce soir

  4. #4
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par d�faut
    Bonsoir tout le monde

    J'ai cr�er un bouton gr�ce � l'utilitaire de ressources...

    J'ai cr�er une variable membre de type control � mon CButton...

    Je le SW_HIDE au d�marrage de l'appli, et je le SW_SHOW � un autre moment...

    Mais j'ai toujours le m�me soucis... si je clic autre part que sur le bouton, il disparait... et il r�apparait si je clic � l'endroit o� il est suppos� se situer...

    Je ne comprends rien :/

  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
    Par d�faut
    bonsoir,
    creation manuelle ou par l'ide ?
    si manuelle montre le code de creation .
    a quels endroits tu sw_show et sw_hide ?
    apres le sw_show fait un invalidate du bouton .

  6. #6
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par d�faut
    Salut

    A la base, c'�tait une cr�ation manuelle... mais on m'a conseill� de passer par l'IDE, ce que j'ai fait... mais j'ai toujours le m�me probl�me.

    Mon SW_HIDE, je l'ai plac� dans la m�thode OnInitialUpdate()
    Mon SW_SHOW est dans le m�thode OnDraw()...

    Euh... la m�thode invalidate marche comment ?
    C'est une m�thode de la classe CView ou de CWindow... donc il veut pas de CButton...

    J'ai rat� un truc ?

  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
    Par d�faut
    re,
    pas de SW_SHOW dans Ondraw ...
    sinon a chaque dessin de la fenetre (recouvrement ou autre) �a repasse dedans ce qui peut expliquer ton pb d'affichage....
    pour faire un invalidate du bouton:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    m_MyButton.Invalidate();

  8. #8
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par d�faut
    Et bien ca marche avec le Invalidate sur le bouton ^^ Merci beaucoup !

    Pourrais-tu m'indiquer dans quelle m�thode il serait pr�f�rable de mettre mon ON_SHOW ?

    Car, � part dans OnDraw, je ne vois pas...

    Merci encore

  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
    Par d�faut
    en g�n�ral tout ce qui est initialisation on met �a dans la fonction
    OnInitialUpdate pour une CFormView et OnInitDialog pour une CDialog.

    En g�n�ral ce genre d'op�ration est conditionn� � l'action d'un autre contr�le
    ou option menu ,sinon je ne vois pas l'int�r�t qu'il soit cach� au d�part si c'est pour le remettre visible tout de suite apr�s ...

    La question c'est pourquoi tu as besoin de faire �a ?
    par d�faut les contr�les sont visibles sauf si on d�coche visible dans les ressources..

  10. #10
    Membre � l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par d�faut
    Je suis en train de d�velopper un jeu de tarot...

    Je me sers de OnDraw pour afficher les cartes donn�es � un joueur, et je veux, s'il prend la main, afficher le chien (6 cartes qu'il peut prendre et les �changer avec 6 autres de sa main, au cas o� tu ne connais pas le jeu )

    Une fois qu'il a les 6 cartes en plus dans les mains, je me ressers de OnDraw pour afficher ses cartes initiales avec celles du chien devant lui.
    Le bouton doit s'afficher � ce moment, afin qu'il puisse valider le fait qu'il a finit d'�changer ses cartes et qu'il est pr�t � commencer...

    Voili voilou

Discussions similaires

  1. [API win32 sans MFC] Cr�ation textbox et evenement bouton
    Par dacid dans le forum Biblioth�ques
    R�ponses: 2
    Dernier message: 17/05/2006, 11h03
  2. R�ponses: 16
    Dernier message: 04/01/2006, 14h54
  3. R�ponses: 7
    Dernier message: 26/10/2005, 12h54
  4. [MFC] SendMessage entre 2 contr�les
    Par Manson dans le forum MFC
    R�ponses: 6
    Dernier message: 13/06/2005, 09h33
  5. Cr�ation dynamique de contr�les
    Par qi130 dans le forum Composants VCL
    R�ponses: 5
    Dernier message: 17/12/2004, 13h19

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