tormoj
Messages postés8Date d'inscriptionvendredi 20 octobre 2000StatutMembreDernière intervention 8 octobre 2002
-
7 oct. 2002 à 16:07
tormoj
Messages postés8Date d'inscriptionvendredi 20 octobre 2000StatutMembreDerniè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
jcecchi
Messages postés117Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention14 janvier 20033 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.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 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(), ... ?
tormoj
Messages postés8Date d'inscriptionvendredi 20 octobre 2000StatutMembreDerniè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
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 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;
Vous n’avez pas trouvé la réponse que vous recherchez ?
tormoj
Messages postés8Date d'inscriptionvendredi 20 octobre 2000StatutMembreDerniè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
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 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.
tormoj
Messages postés8Date d'inscriptionvendredi 20 octobre 2000StatutMembreDerniè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 @+.