cqui789
Messages postés261Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention18 mai 2009
-
9 mars 2005 à 01:45
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 2019
-
9 mars 2005 à 23:49
Bonjour,
je suis entrain de reprendre un programme.
J'ai ecrit le suivant, la fenetre est sensee bouger puis on copie ce qui se trouve dessous dessus.
le probleme, c'est que la forme ne bouge pas, pire, elle bouge si je met le move apres la fonction StretchBlt je ne vois pas comment cette fonction peut annuler le deplacement de la fenetre
pouvez vous eclairer ma lanterne vant que je ne devienne chevre...
Move Left + (X) * 15, Top + (Y) * 15
'Avant de capturer une image il faut cacher la fenêtre afin qu'elle n'apparaisse pas dans la capture.
Visible = False
'Il faut laisse à Windows le temps de la masquer. Donc, on lui redonne la main durant un instant.
DoEvents
'Maintenant, on capture la portion voulue de l'image et on la place comme image d'arrière plan de la fenêtre.
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 9 mars 2005 à 02:18
j'ai essayé, chez moi ça marche.
c'est quoi X et Y ?
est-ce que le Move se fait sans StrechBlt ?
peut être qu'un seul DoEvents ne suffit pas
essayes ça:
Do
Loop Until DoEvents = 0
sinon il y a un léger décalage, j'ai dû rajouter les bordures de la fenêtre
4 + (Left / 15), 30 + (Top / 15), _
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 9 mars 2005 à 22:15
c'est pas le Move qui a besoin de temps, c'est Visible = False
donc tu peux mettre le Visible d'abord le Move ensuite et après le DoEvents.
pour le X, Y j'avais pensé que les unités étaient mauvaises et donc que le Move ne se faisait pas.
d'où la question est ce que le Move se fait quand même mais peut être pas assez vite ?
pour la bordure même si BorderStyle = 0 t'as au moins une bordeure de 4.
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 9 mars 2005 à 23:49
j'ai vu ça dans un exemple et j'ai été étonné que DoEvents pouvait avoir une valeur.
en faisant MsgBox DoEvents il me renvoie la valeur 1.
donc apparemment DoEvents peut prendre 2 valeurs 0 ou 1.
j'ai testé l'exemple et ça n'a pas bouclé
j'en sais pas plus...