bonjour ,
je cherche un peu d'aide pour un probleme auquel je coince:(:(
j'ai une picturebox1 avec un fond d'ecran , en autosize dans une form avec scrollbar .
Une autre picturebox2 avec un logo que je fais glisser sur la picturebox1 puis avec un "DrawImage" je "colle" la picturebox2 sur la 1 .
Ca fonctionne tres bien sur un petit fond quand les scrollbars ne sont pas actif mais des que je mets un fond assez grand et que les scrollbars de la form s'activent , si je descends ma picturebox2 plus bas en me servant des scrollbars , le "collage" ne se fait pas a la location de la picturebox2...
je crois avoir lu que les scrollbars ne servent pas aux objets insérés dans la form (ou picturebox) , et que le probleme viendrai de ca ...
comment puis je contourner cela ? une idee ?
loin d'etre un pro dans ce domaine , et apres avoir chercher pas mal , impossible de trouver :)
merci de votre aide.
ci joint le code source de mon projet :
_____________________________________________________________________________________________________________________
Public Class Form1
Dim Graph As Graphics
Dim Drawbitmap As Bitmap
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Integer, ByVal wMsg As Integer, _
ByVal wParam As Integer, ByVal lParam As String) As Integer
Private Declare Sub ReleaseCapture Lib "user32" ()
Public WithEvents pictubox1 As PictureBox
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim dlg As New SaveFileDialog
dlg.Filter = "Bitmap|*.bmp"
If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
PictureBox1.Image.Save(dlg.FileName)
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim openFD As New OpenFileDialog
openFD.Title = "Sélectionnez le fichier que vous souhaitez ouvrir."
DialogResult = openFD.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Then
PictureBox3.ImageLocation = (openFD.FileName)
PictureBox2.ImageLocation = (openFD.FileName)
PictureBox2.Height = PictureBox3.Image.Height
PictureBox2.Width = PictureBox3.Image.Width
End If
End Sub
Private Sub PictureBox2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox2.MouseMove
Dim lHwnd As Int32
lHwnd = PictureBox2.Handle
If lHwnd = 0 Then Exit Sub
ReleaseCapture()
SendMessage(lHwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
Dim lHwnd As Int32
lHwnd = Me.Handle
If lHwnd = 0 Then Exit Sub
ReleaseCapture()
SendMessage(lHwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End Sub
Dim g As Graphics
Private Sub PictureBox2_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox2.MouseUp
g = Graphics.FromImage(PictureBox1.Image)
g.DrawImage(PictureBox2.Image, New Point(PictureBox2.Location.X, PictureBox2.Location.Y - 128))
PictureBox2.Location = New Point(141, 14)
' Graph.DrawImage(PictureBox2.Image, PictureBox2.Location)
PictureBox1.Refresh()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class