visual studioda çizgi çizmek

Başlatan ddavut, 27 Nisan 2009, 12:44:46

ddavut

visual studio ortamında çizgi çizmek yada açılı bir yazı eklemek için çeşitli kodlar var. ama ilk tasarım anında birkez çizilecek bir çizgi yada açı ile yazılacak bir yazı için painttekine benzer bir toolbar varmıdır? biraz kurcaladım ama böyle bir şey bulamadım. dediğim gibi kodlarla bu mümkün ama kod yerine mouse ile görsel çizim yönünde bir olanak varmıdır?

muhittin_kaplan

api yada class gibi bişeymi kontrolmü dosyası felanmı yani

ddavut

Alıntı yapılan: "muhittin_kaplan"api yada class gibi bişeymi kontrolmü dosyası felanmı yani

ne demek istedin? hiç bir şey anlamadım

turkplc

'Lineto ve arc apileri ile yapabilirsiniz. aşağıda visual basic örneği var

Private Type POINTAPI
       x As Long
       y As Long
End Type
Private Declare Function PolyBezier Lib "gdi32.dll" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long
Private Declare Function PolyBezierTo Lib "gdi32.dll" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As Any) As Long
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function PolyPolygon Lib "gdi32.dll" (ByVal hdc As Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As Long
Private Sub Form_Paint()
   'KPD-Team 2000
   'URL: http://www.allapi.net/
   'E-Mail: KPDTeam@Allapi.net
   Dim pts(0 To 6) As POINTAPI
   Dim numpoints(0 To 1) As Long
   'set the coördinates
   pts(0).x = 0: pts(0).y = 100
   pts(1).x = 125: pts(1).y = 75
   pts(2).x = 255: pts(2).y = 148
   pts(3).x = 219: pts(3).y = 199
   pts(4).x = 315: pts(4).y = 203
   pts(5).x = 236: pts(5).y = 16
   pts(6).x = 122: pts(6).y = 123
   'set the forecolor to green
   Me.ForeColor = vbGreen
   'draw the bézier
   PolyBezier Me.hdc, pts(0), 7
   'set the forecolor to red
   Me.ForeColor = vbRed
   'move the 'active' point
   MoveToEx Me.hdc, 200, 25, ByVal 0&
   'set the coördinates
   pts(0).x = 125: pts(0).y = 50
   pts(1).x = 123: pts(1).y = 200
   pts(2).x = 102: pts(2).y = 100
   pts(3).x = 102: pts(3).y = 100
   pts(4).x = 312: pts(4).y = 75
   pts(5).x = 289: pts(5).y = 125
   'draw the bézier
   PolyBezierTo Me.hdc, pts(0), 6
   'set the forecolor to blue
   Me.ForeColor = vbBlue
   'set the points belonging to the rectangle
   pts(0).x = 20: pts(0).y = 10
   pts(1).x = 200: pts(1).y = 10
   pts(2).x = 200: pts(2).y = 190
   pts(3).x = 20: pts(3).y = 190
   numpoints(0) = 4
   'set the points belonging to the triangle
   pts(4).x = 100: pts(4).y = 0
   pts(5).x = 50: pts(5).y = 100
   pts(6).x = 150: pts(6).y = 100
   numpoints(1) = 3
   'draw the polygons
   PolyPolygon Me.hdc, pts(0), numpoints(0), 2
End Sub

muhittin_kaplan

demek istediğim yada benim sizin yazdığınızdan anladığım
Alıntı Yapvisual studio ortamında çizgi çizmek yada açılı bir yazı eklemek için çeşitli kodlar var. ama ilk tasarım anında birkez çizilecek bir çizgi yada açı ile yazılacak bir yazı için painttekine benzer bir toolbar varmıdır
"kodlarla yazmayayım alayım çizgiyi koyayım gibi bir yöntem."
bunları kontrol dosyaları ile yaparsın..

ddavut

öncelikle vb ile değil C# ile yazıyorum ve formda C# diye bir başlık olmadığından konuyu vb başlığı altında açtım. ve meramımı anlatırken kullandığım dili belirtmedim çünki bu çizgi işini C# altındaki kodlarla zaten çizebiliyorum, benim sormak istediğim "toolbarda bir butonu tıklayım daha sonrada form üzerinde mouse ile bir çizgi çekebileyim". böyle bir şey mümkünmüdür? tabi yapılacaklar arasında çember çizmek, yada açılı bir yazı eklemek gibi varyasyonlarda olabilir.


Alıntı yapılan: "muhittin_kaplan"
bunları kontrol dosyaları ile yaparsın..

kontrol dosyalar ile bu iş nasıl yapılıyor? açıklaya bilirmisin?

muhittin_kaplan


muhittin_kaplan

Denedim C# da da oluyor öceki mesjımda microsoft linkli powerpack i indir ve kur. sonra herhangi bir nesne ekliyor gibi çizgiyi ekle

ddavut

çok sağol. ilk fırsattan denicem.