Boa tarde,
Tenho um conjunto de pontos (calculados pelo programa, ou seja, mudam de valor dependendo dos dados de entrada) e gostaria de desenhar uma linha passando por eles dentro de um Userform.
Para isso estou usando o seguinte código:
Option Explicit
Private Declare Function GetDC& Lib "user32" (ByVal hWnd&)
Private Declare Function LineTo& Lib "gdi32" (ByVal hDc& _
, ByVal x&, ByVal y&)
Private Declare Function MoveToEx& Lib "gdi32" _
(ByVal hDc&, ByVal x&, ByVal y&, lpPoint As POINTAPI)
Private Declare Function GetActiveWindow& Lib "user32" ()
Private Type POINTAPI
x As Long
y As Long
End Type
Private hDc As Long
Private Sub DrawLine(ByVal X1&, ByVal Y1&, ByVal X2&, ByVal Y2&)
Dim pt As POINTAPI
MoveToEx hDc, X1, Y1, pt
LineTo hDc, X2, Y2
End Sub
Private Sub UserForm_Activate()
hDc = GetDC(GetActiveWindow)
Dim i As Byte
DoEvents
'Apenas um exemplo
DrawLine 0, 0, 100, 100
End Sub
Minhas dúvidas são:
1) Esse código é apropriado? Existe algum jeito mais fácil?
2) Como fazer a conversão de pixels/pontos para que quando eu mande andar Me.InsideHeight, por exemplo, ele ande para o final do userform?
3) Como faço para que cada ponto tenha, ao seu lado, um label com suas coordenadas, sendo que o número de pontos pode variar dependendo dos dados de entrada?
4) Como usar shapes como retangulo e triangulo?
Não sei mexer muito bem com API, desculpem se falei besteira.
Desculpem também qualquer tipo de erro quanto as regras do fórum, sou novo por aqui!
Valeu galera!
Postado : 25/11/2012 9:49 am