Власне малювання C + + Builder

Тепер, коли ви маєте уявлення, яким чином все працює, давайте закінчимо започаткований нами приклад, додавши код для малювання точок при пересування нии миші у вікні і для зупинки процесу в момент, коли користувач відпустить нарешті ліву кнопку миші Отже, спочатку код для малювання Додайте вже відомим вам способом обробник для події OnMouseMove, А в нього додайте наступні рядки:

void __fastcall TForm1::OnMouseMove(TObject *Sender, TShiftState Shift,

int X,int Y)

{

if(FbMouseDown))

{

Canvas-&gtLineTo(X,Y)

}

}

Цей метод використовує прапор, який ми визначили раніше для вказівки, натиснута в даний момент кнопка миші чи ні Якщо прапор встановлений, то викликається метод Canvas-&gtLineTo Цей метод малює лінію з поточної позиції в нову позицію миші і робить цю нову позицію поточної Якщо ви памятаєте, початкова позиція була визначена в нашому методіOnMouseDown, Коли кнопка миші була натиснута у вікні

І нарешті, останній метод, який повинен бути виконаний, це обробник події, коли кнопка миші відпускається Цей метод повинен всього лише зняти (тобто встановити в FALSE) прапор, який показує, що кнопка миші натиснута Оскільки єдиною можливою функцією залишиться просто пересування ня миші, це означатиме одночасно і закінчення процесу малювання точок

Нижче приведений код для методуOnMouseUp, Який ви повинні додати в обробник для події OnMouseUp (Кнопка миші відпущена) в інспекторові обєктів:

void __fastcall TForm1:OnMouseUp(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y)

{

FbMouseDown = FALSE

}

Хочете вірте, хочете не вірте, але програма Scribble благополучно дописана Ви можете зробити її виконуваної, запустити, не виходячи з оточення CBuilder, і малювати пики скільки душі завгодно Невелике відступ для тих, хто воліє використовувати клавіатуру, а не миша Ви можете використовувати поєднання клавіш Ctrl + F9 для того, щоб скомпілювати проект Це спрацює з вікна будь-якого редактора системи

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*