wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 3

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Centrage approximatif
Conversation (Résolue) : Centrage approximatif
01-12-2007 21:16:02  Centrage approximatif #1
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne
Salut,

Pour voir où j'en suis de mon modeleur UML et l'efficacité de ce que j'ai codé (peu de chose ^^), jai vérifié comment apparaissent mes éléments (struct, classes): mais j'ai un petit problème de centrage du titre de mes classes dans le rectangle, c'est très approximatif :'( ...

Code wxWidgets:

 
///<(à part)
if(m_fontWidth==0)
        m_fontWidth=dc.GetCharWidth();
    if(m_fontHeight==0)
        m_fontHeight=dc.GetCharHeight();
 
    ///<Recalcul des hauteurs et largueur du rectangle (pas dans la même fonction)
    m_height=m_fontHeight+50;
    m_width=m_fontWidth*m_className.Length()+30;
 
    ///<Le dessin commence ici
    ///m_ImPartOf->GetStyleSheet()->m_borderRadius: monProjet->maFeuilleDeStyle->laProp
    dc.DrawRoundedRectangle(m_x, m_y, m_width, m_height, m_ImPartOf->GetStyleSheet()->m_borderRadius);
    dc.DrawText(m_className/*ou autre*/, m_x+m_width/2-m_fontWidth*m_className.Length()/2, m_y+10);


Comment pourrais-je mieux faire?

Rien ne vaut la 2D pour éviter les problèmes de profondeur.
02-12-2007 01:09:26  Re: Centrage approximatif #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Plutôt que d'utiliser GetCharWidth() et GetCharHeight, pourquoi tu ne le fais pas avec GetTextExtend() ?
Ça serait à mon avis beaucoup plus simple, non ?

Code wxWidgets:

wxSize txtSize=dc.GetTextExtend(m_className);
 
dc.DrawRoundedRectangle(m_x,m_y,txtSize.GetWidth()+30,txtSize.GetHeight()+30,
    m_ImPartOf->GetStyleSheet()->m_borderRadius);
dc.DrawText(m_className,m_x+15,m_y+25);
 

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
02-12-2007 07:44:21  Re: Centrage approximatif #3
blend (Membre)
Inscrit le : 07-10-2007
Messages: 129
Snippets: 0
Tutoriels: 0
Hors ligne
J'avais pas vu ^^ C'est vrai que c'est plus facile ^^
Merci.

Rien ne vaut la 2D pour éviter les problèmes de profondeur.
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Centrage approximatif