Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: как на мониторе, в любом месте, нарисовать прямоуг Добавлено: 10.03.08 00:12  

Автор вопроса:  Георгич
Добренький вечерок!

У меня вопрос такой, как на мониторе, в любом месте, нарисовать прямоугольник из под стрелки курсора?

В коде ниже, без проблем , я на форме , нажимаю левую кнопку мыши удерживая её, виду курсор в любую сторону, отпускаю кнопку, прямоугольник готов. А как , в не формы ?
В коде видно,что я применил метод ,ControlPaint.DrawReversibleFrame(Прямоугольник, Color.Red, FrameStyle.Thick),
Который рисует на экране и этим методом можно нарисовать прямоугольник на экране но только по четко заданным размерам, а не из под курсора

И даже в данном коде если, нажать кнопку мыши на форме и курсор выводить за пределы формы, то на экране будут оставться прямоугольники но их много, как забор. Такое впечатление, что экрану надо дать команду перерисоваться, типа (Refresh), возможно ли это?

Я пиши на vb.net 2003

Public Class Form1

Private Прямоугольник As Rectangle
Private Start As Point
 Private ПредачаДвиж As Point


    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
        If e.Button = MouseButtons.Left Then


        Start.X = Cursor.Position.X
            Start.Y = Cursor.Position.Y

            ПредачаДвиж = Start
        End If
    End Sub


    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
        If e.Button = MouseButtons.Left Then
            Dim Curent As Point

            Curent.X = Cursor.Position.X
            Curent.Y = Cursor.Position.Y

            Прямоугольник = New Rectangle(Start.X, Start.Y, Curent.X - Start.X, Curent.Y - Start.Y)
            Me.Refresh()
            ControlPaint.DrawReversibleFrame(Прямоугольник, Color.Red, FrameStyle.Thick)
             
            ПредачаДвиж = Curent
        End If


    End Sub

    
End Class

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 s12



Вопросов: 24
Ответов: 363
 Профиль | | #1 Добавлено: 10.03.08 02:39
Чтобы нарисовать прямоугольник в любом месте монитора нам нужно:
а) Монитор
б) Маркер (фломастер)
в) Линейка (лучше треугольник)
г) Руки (прямозаточенные)
д) Решимость испоганить монитор до неприличных ассоциаций. :)

По теме:
Чтоб избавится от "частокола", скорее всего понадобится юзать событие MouseUp (да есть и такое) вместо MouseMove.

Для рисования лучше, конечно, использовать апи (че-нить типа Rectangle <;Declare Function Rectangle Lib "gdi32.dll" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long >;), но это на любителя.
;)

Да гм... а что значит:
...из под курсора
???

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам