Я не сильно разобрался, что означают flag=2 и flag=3. Однако исправить ошибку можно так:
Сохранять пердыдущее положение мыши в отдельных переменных. Потом вместо рисования точки рисовать линию от старой (сохранённой) позиции курсора до новой.
Такой способ даёт ошибку если рисовать дугу быстро - она становиться ломаной. Но такая ошбка есть даже в Paint...
А вообще, впервые вижу програмиста Бейсика.