Deplacer 2 form ensemble / deplacer picture1 de form1 a form2
ORTIPIC
Messages postés41Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention16 juillet 2007
-
25 août 2005 à 00:08
ORTIPIC
Messages postés41Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention16 juillet 2007
-
25 août 2005 à 22:05
Salut a tous
si quelqu un peut me dire sous vb6
comment :
deplace t on deux ( form1 et form2 ) en meme temps
et comment :
deplacer un object picture1 sur form1 vers la form2
merci j ai pourtant cherché mais .................
A voir également:
Deplacer 2 form ensemble / deplacer picture1 de form1 a form2
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 25 août 2005 à 00:59
mouvement de la Form1 entraine mouvement de la Form2
faudrait faire la même chose pour la Form2, je sais pas si c'est possible.
pour mettre le Picture1 dans la Form2 faut utiliser SetParent
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
dans la Form1
Private Sub Form_Load()
'Remplace la procédure de fenêtre par défaut par notre propre procédure
oldWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Remet la procédure de fenêtre par défaut
SetWindowLong hwnd, GWL_WNDPROC, oldWndProc
End Sub
dans un module
Public Const GWL_WNDPROC = (-4)
Private Const WM_MOVE = &H3
Public oldWndProc As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, _
ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Function WindowProc(ByVal hwnd As Long, ByVal msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If msg = WM_MOVE Then
'la form1 a été déplacée
Form1.Cls
Form1.Print "Nouvelle position : " & Form1.Left & ", " & Form1.Top
Form2.Move Form1.left + Form1.Width, Form1.Top
End If
'Appelle la procédure de fenêtre par défaut pour que Windows puisse traiter l'évènement
WindowProc = CallWindowProc(oldWndProc, hwnd, msg, wParam, lParam)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 25 août 2005 à 06:09
Juste une petite précision sur le code de Daniel : cela s'appelle un
Hook, c'est-à-dire qu'on utilise une fonction WindowProc personnelle
avant d'exécuter celle de windows par défaut.
VB n'aime pas du tout ce genre de manipulation et ca le rend instable
si on quitte le prog par le bouton Stop de l'IDE, donc à utiliser avec
modération : bien rétablir la fonction WindowProc par défaut à la
fermeture du prog, et ne pas quitter le prog par un "Stop" ou un appel
à End si tu ne veux pas relancer VB à chaque éxécution !
N.B. : Ca marche parfaitement en mode compilé cependant.
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
ORTIPIC
Messages postés41Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention16 juillet 2007 25 août 2005 à 09:44
merci .... Gobillot
merci ... Darsidious
je vais tester cette methode merci
......... j avais utilisé l api SetTimer et KillTimer pour autre chose , mais le probleme de plantage de ID VB est bien lourd ,certainement comme le hook de Gobillot
-----------------------------------
il reste la question du deplacement d objet ...... j attend une bonne idee
gilmerl
Messages postés30Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention 2 mai 2007 25 août 2005 à 18:28
slt
j'cprend pas exactement ton message mais
pour deplacer un picture de la form1 ver la form2, suffit juste d'écrire peut être dans le form_load de la form2: (nom du picture sur la form2)=form1.(nompicture dela form 1
............bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?