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 centrés horizontalement. Voici le code initial:
Code :
- 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 :
- 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
Message édité par Joker28 le 30-10-2008 à 16:55:56