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

Windows Discussion :

[APIWin32][MFC] Centrer un CButton?


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 47
    Points
    47
    Par défaut [APIWin32][MFC] Centrer un CButton?
    Bonjour à tous,

    Pour un projet de portage d'un player vidéo vers Windows XP, j'ai à refaire l'UI du player, en partant d'un projet de portage déjà entamé.
    J'utilise pour ça l'API win32 pour dessiner mes panels, mes boutons, etc...
    J'ai néanmoins un petit problème.
    Initialement, j'avais un background vertical que j'ai décidé de passer en horizontal. Seulement voilà, dans mes panels, mes boutons se centrent toujours par rapport à l'ancien background et ne sont donc pas centrer horizontalement. Voici le code initial:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            CWnd *pWnd = this->GetParent(); //Récupère la Cwnd parent
    	GetWindowRect(&buttonPosition); //Récupère les coordonnées du bouton dans la Cwnd parent => 455,215,655,247
    	pWnd->ScreenToClient(buttonPosition); // Convertit les coordonnées ??? => 20,100,220,132 (left, top, right, bottom)
    	buttonPosition.right	= buttonPosition + image.GetWidth(); 
    	buttonPosition.bottom	= buttonPosition.top  + image.GetHeight();
    	MoveWindow(buttonPosition); // Change la position du bouton
    Si j'essaye ça, mes boutons se centrent mais horizontalement et verticalement (s'empilent quoi). Et je ne sais pas s'ils se centrent par rapport à l'écran ou à la fenêtre parent...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            CWnd *pWnd = this->GetParent(); //Récupère la Cwnd parent
    	this.CenterWindow(pWnd ); // Centre
    Ma question est donc "Comment centrer horizontalement un CButton"?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 369
    Points
    50 369
    Par défaut
    Normallement, c'est la fenêtre qui se centre par rapport à celle que tu passe en paramètre (ou son parent si tu passes NULL).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.CenterWindow(pWnd );
    me parait très étrange, this est un pointeur.

    Le centrage se fait par CenterWindow() si ta CWnd courante (this) est bien le bouton que tu veux centrer.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 47
    Points
    47
    Par défaut
    Merci pour ta réponse.
    En cherchant un peu plus dans le code que j'avais déjà, j'ai trouvé comment faire en modifiant un fichier XML de constantes...
    Du coup efficacité maximale sans toucher au code

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

Discussions similaires

  1. [MFC] Activer un CButton à la demande
    Par TotorLeCastor dans le forum MFC
    Réponses: 1
    Dernier message: 13/04/2008, 21h32
  2. [mfc] centrer la forme
    Par torNAdE dans le forum Visual C++
    Réponses: 1
    Dernier message: 12/04/2008, 13h40
  3. [MFC] Progress Bar dans un CButton
    Par Aymerik dans le forum MFC
    Réponses: 4
    Dernier message: 03/04/2006, 17h39
  4. [MFC] Centrer du texte dans une RichEdit
    Par firejocker dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2006, 11h05
  5. Réponses: 3
    Dernier message: 12/12/2004, 18h48

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