Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) frmPaint.PSet (X, Y) End Sub
Запустим приложение. При движении мыши по форме остается след из точек. Но след должен оставаться, только если при движении мыши нажата левая кнопка мыши. Добавим это условие в код приложения. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Если запустить только что созданную программу, то можно обнаружить небольшую проблему. Проблема состоит в том, что для того, чтобы нарисовать сплошную линию, нам необходимо двигать курсор мыши очень медленно. Как с этой проблемой справляются другие графические приложения? Очень просто. Они соединяют линией две соседние точки положения мыши. Это может показаться странным, но именно так работают графические редакторы. Во время движения мыши по экрану компьютер проверяет положение мыши через небольшие промежутки времени. Поскольку компьютер не имеет возможности отследить все положения мыши, то необходимо делать некоторые предположения о ее местонахождении. Это предположение выражается в том, что компьютер предполагает, что мышь двигалась по прямой между теми двумя точками, положение компьютеру известно. Когда вы рисуете на компьютере с помощью мыши, компьютер ведет себя именно так. Повторим этот метод в нашем приложении. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Почти хорошо. Однако появилась неприятная особенность. Каждый раз, когда мы нажимаем кнопку мыши для того, чтобы начать рисовать новый фрагмент, приложение соединяет линией точку окончания предыдущего фрагмента с началом нового. Для этого нам понадобится знать начальное положение курсора мыши, при нажатии кнопки. Объявим две глобальные переменные в секции (General)(Declarations).
|