Probleme d'origine!!

tormoj Messages postés 8 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 8 octobre 2002 - 7 oct. 2002 à 16:07
tormoj Messages postés 8 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 8 octobre 2002 - 8 oct. 2002 à 15:03
Salut a tous,
je fait encore appelle a vous car je suis encore bloqué dans mon projet.
CAD :
je dessine correctement dans une dialog mais le probleme c'est que mon origine de ma boite de dialog ce trouve en haut a gauche et je voudrais qu'elle se situe en bas a droite de ma dialog car j'ai une inversion dans mes Y.
Merci encore a tous pour vos aides qui me sont de tres grande utilitées.
tormoj

9 réponses

jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
7 oct. 2002 à 18:11
salut,

bon il y a peut-etre ce moyen la (à tester car j'ai pas essayer) :

Tu creer un structure DLGTEMPLATE ou tu spécifies les coordonnées du coin superieur gauche, le style, la taille de ta boite.
Ensuite tu utilises la fonction CreateDialogIndirect pour creer ta boite de dialogue, et normalement tu peux maintenant dessiner comme tu le souhaites dans ta boite de dialogue.

Je donne ces deux liens pour etudier tout ca :
CreateDialogIndirect
et
DLGTEMPLATE
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
7 oct. 2002 à 18:26
Moi j'ai compris autre chose que jcecchi, que tu as un problème de coordonnées dans le répère qu'est ta dialog.
C'est à dire que tu as des problèmes lors de l'appel des functions LineTo(), MoveToEx(), ... ?
0
tormoj Messages postés 8 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 8 octobre 2002
8 oct. 2002 à 09:05
Tout d'abord merci a vous deux d'avoir repondu.
Kaid, c'est vrai que j'ai un probleme avec les differentes fonctions de dessins comme LineTo, AngleArc etc...
comme mon origine est en haut a gauche mes calcule d'angle, par exemple, est completement faussé.
Bon en tout cas je vais etudier ce que jcecchi ma ma posté car je pense que la solution est par la.
Merci encore a tout.
tormoj
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
8 oct. 2002 à 10:20
Donc si tu inverser tes Y, il faut faire une soustraction entre la hauteur de la dialog et ton Y, non ?
La méthode GetClientRect() permet de récupérer les coordonnées de la zone cliente d'une fenêtre :

RECT rect;
GetClientRect(hWnd, &rect);

int nY=rect.height - Y;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tormoj Messages postés 8 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 8 octobre 2002
8 oct. 2002 à 11:28
Salut Kaid,
je suis d'accord avec toi mais ca modifie pas le vrai y de ma boite de dialog.
Je pense que la seul solution a mon probleme c'est de changer vraiment l'origine de ma boite de dialog avant meme qu'elle se crée.
je pense a une fonction mais je sait pas l'utiliser ou je sait pas si elle est valable pour les boite de dailog: c'est SetWindowOrg().
J'insiste sur le changement d'origine car j'ai deja essayer de modifier les y mais ca fonctionne que pour les LineTo et le MoveTo mais c'est que j'utilise d'autre fonction comme AngleArc qui doit me tracer un arc en fonction de d'un point, rayon, et deux angle que je calcule prealablement et c'est la le hick!!
Bon j'espere que j'ai ete plus precis sur mon probleme et merci encore.
tormoj
0
jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
8 oct. 2002 à 12:41
salut,

Oui ca doit marcher. Exemple si tu veux dessiner sur 100 en Y :
SetWindowOrgEx(hDc, 0, -100, NULL);

Ensuite il faudra quand meme :
1) Inverser tes valeurs en Y
2) Ajouter PI/2 a tous tes angles.
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
8 oct. 2002 à 12:48
En étudiant la doc de la MSDN sur SetWindowOrgEx(), j'ai l'impression que tu as effectivement trouvé la bonne fonction.
C'est une fonction GDI, ca devrait donc marcher aussi avec les dialogs.
0
tormoj Messages postés 8 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 8 octobre 2002
8 oct. 2002 à 13:55
Ok, je vais essayer ca de suite.
Je vous tient au courant et Merci encore a vous deux.
tormoj
0
tormoj Messages postés 8 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 8 octobre 2002
8 oct. 2002 à 15:03
Bon effectivement ca fonctionne impecablement et il faut bien inverser les Y :-(
j'ai pas encore essayer pour les arc mais je pense qu'il va falloir rajouter PI/2 comme tu l'indique a cause de -Y.
Bon je vais me pencher la dessus et je vous tient au courant @+.

tormoj
0
Rejoignez-nous