Главная » C++, C++ Builder » Собственно  рисование C++ Builder

0

Теперь, когда вы имеете представление, каким образом все работает, давайте закончим начатый нами пример, добавив код для рисования точек при передвиже нии мыши в окне и для остановки процесса в момент, когда пользователь отпустит наконец левую кнопку мыши. Итак, сначала код для рисования. Добавьте уже известным вам способом обработчик для события OnMouseMove, а в него добавьте следующие строки:

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

int X,int Y)

{

if(FbMouseDown))

{

Canvas->LineTo(X,Y);

}

}

Этот метод использует флаг, который мы определили ранее для указания, нажата в данный момент кнопка мыши или нет. Если флаг установлен, то вызывается метод Canvas->LineTo. Этот метод рисует линию из текущей позиции в новую позицию мыши и делает эту новую позицию текущей. Если вы помните, начальная позиция была определена в нашем методе  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

По теме:

  • Комментарии