Notifications
Clear all

Desenhando (linhas e shapes) e escrevendo em Userform (API)

4 Posts
2 Usuários
0 Reactions
1,060 Visualizações
(@wagnerkd)
Posts: 2
New Member
Topic starter
 

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
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Enquanto isso...
...Leia
http://www.andypope.info/vba/userformdraw.htm

Att

 
Postado : 25/11/2012 11:57 am
(@wagnerkd)
Posts: 2
New Member
Topic starter
 

Na verdade só vou precisar da resposta da pergunta número 3!

Não que eu saiba as outras, mas não vou precisar mesmo.

Obg!

 
Postado : 25/11/2012 12:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se entendi corretamente, mas de uma olhada se é isto.

Linha em Formulário

De uma olhada nestes outros Tópicos, podem ser interessantes tambem :
Programming Excel 2007 and Excel 2010 AutoShapes with VBA
viewtopic.php?f=21&t=4017

Inserir figuras geométricas no Formulário
viewtopic.php?f=10&t=4007&p=20025&hilit=shape#p20025

Inserir formas (Linha) ou borda através de Macro
viewtopic.php?f=16&t=3781&hilit=shape

[]s

 
Postado : 25/11/2012 3:49 pm