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 :

Déplacer un CBitmapButton


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Par défaut Déplacer un CBitmapButton
    Bonjour,

    Je cherche à déplacer dynamiquement mon bouton. J'ai essayé avec SetWindowPos ( "fenetre parent", x, y, 0, 0, SWP_SHOWWINDOW) mais rien ne se passe mon bouton est toujours actif et fonctionne mais il n'a pas bouger.

    Pourriez vous m'aider.

  2. #2
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Par défaut
    Voila la partie du constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(!PauseButton.LoadBitmaps(_T(IDB_PAUSE_NORMAL),_T(IDB_PAUSE_CLICK))){
    	AfxThrowResourceException();
    }
    et le OnInitDialog

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    VERIFY(PauseButton.SubclassDlgItem(IDC_PAUSE,this));
    PauseButton.SizeToContent();
     
    PauseButton.SetWindowPos(this, 8, 32, 20, 20, SWP_SHOWWINDOW);
    J'ai trouvé une solution en faisant un MoveWindow à la place du SetWindowPos, mais je veux bien savoir pourquoi ca ne marchait pas.

  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

  4. #4
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par farscape
    Cela ne fonctionnera pas il fait un "subclassing" de son bouton ..

  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
    Citation Envoyé par mat.M
    Cela ne fonctionnera pas il fait un "subclassing" de son bouton ..
    et alors ?
    tous les controles sont subclassés...

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Par défaut
    mon bouton se déplace désormais, en utilisant la fonction MoveWindow, mais pas avec SetWindowPos.

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Xhéras
    VERIFY(PauseButton.SubclassDlgItem(IDC_PAUSE,this));


    J'ai trouvé une solution en faisant un MoveWindow à la place du SetWindowPos, mais je veux bien savoir pourquoi ca ne marchait pas.
    Pourquoi fais-tu du "subclassing" avec le bouton ?
    Pq appeler SubclassDlgItem ?
    S'il ne bouge pas c'est normal , la file de message étant déroutée avec SubclassDlgItem ne reçoit plus WM_MOVE

    CWnd::SubclassDlgItem
    BOOL SubclassDlgItem( UINT nID, CWnd* pParent );

    Remarks

    Call this member function to “dynamically subclass” a control created from a dialog template and attach it to this CWnd object. When a control is dynamically subclassed, windows messages will route through the CWnd’s message map and call message handlers in the CWnd’s class first. Messages that are passed to the base class will be passed to the default message handler in the control.

    This member function attaches the Windows control to a CWnd object and replaces the control’s WndProc and AfxWndProc functions. The function stores the old WndProc in the location returned by the GetSuperWndProcAddr member function.

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

Discussions similaires

  1. déplacer un élément d'une table
    Par Sph@x dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/02/2004, 12h12
  2. déplacer un fichier
    Par bourinator dans le forum C
    Réponses: 9
    Dernier message: 24/09/2003, 20h29
  3. Réponses: 5
    Dernier message: 24/04/2003, 22h08
  4. Déplacer la sélection d'une ligne dans un stringgrid
    Par jer64 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 14/03/2003, 00h57
  5. TChart : déplacer un point
    Par Nicolas dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 18h05

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