Option Explicit Private Sub Form_Load() Dim X As Long Dim Y As Long '# On donne a la form la dimension de 800x600 pixels ScaleMode = vbTwips Width = ScaleX(800, vbPixels, vbTwips) Height = ScaleY(600, vbPixels, vbTwips) '# Ce 800x600 est la dimension de la Form toute entière, par uniquement celle de '# la zone cliente. Il faut donc prendre en compte cette différence (dimensions '# des bordures de la Form et de la barre de titres). ScaleWidth/ScaleHeight est la '# taille de cette zone cliente Width = Width + Width - ScaleWidth Height = Height + Height - ScaleHeight '# On souhaite un quadrillage personnalisé... ScaleWidth = 20 ScaleHeight = 15 '# On dessine ledit quadrillage Me.AutoRedraw = True For Y = 1 To ScaleHeight Line (0, Y)-(ScaleWidth, Y), vbBlack Next Y For X = 1 To ScaleWidth Line (X, 0)-(X, ScaleHeight), vbBlack Next X Set Me.Picture = Me.Image Me.AutoRedraw = True End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Static prevX As Long Static prevY As Long '# Les coordonnées 'brutes' suivies de l'indice de la case survollée Me.Caption = X & " ; " & Y & " " & Fix(X) & " ; " & Fix(Y) X = Fix(X) Y = Fix(Y) '# Ce test permet d'optimiser un peu la chose, ne redessinant que si nécessaire... If prevX <> X Or prevY <> Y Then prevX = X prevY = Y '# On mets en rouge la case survollée, si elle a changé Cls Line (X, Y)-(X + 1, Y + 1), vbRed, BF Line (X, Y)-(X + 1, Y + 1), vbBlack, B End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionnX = (X / imgBoard.Width) * 10 nY = (Y / imgBoard.Height) * 10
DrawWidth = Val(txtEpaisseur.Text)