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:
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
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
Ma question est donc "Comment centrer horizontalement un CButton"?
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
Merci d'avance
Partager