Читайте также:
|
|
void Clara3Dlg::OnButton2()
{ this->RedrawWindow();
// перерисовка окна для удаления изображенной в нем графики
CClientDC MyDC(GetDlgItem(IDC_STATIC1));
// определение объекта класса CClientDC в элементе диалога «Static
// text»
CRect Rect; // объявление объекта класса CRect
CWnd *pWnd = MyDC.GetWindow();
// определение указателя на окно, занимаемое элементом диалога
// «Static text»
pWnd->GetClientRect(&Rect);
// передаем размеры окна, занимаемое элементом диалога «Static
// text» в объект Rect
MyDC.FillSolidRect(&Rect, RGB(200,50,120));
// рисуем закрашенный прямоугольник в элементе диалога «Static
// text»
int x1, y1, x2, y2;
x1 = Rect.TopLeft().x;
// определяем координату х левой верхней точки прямоугольника Rect
// и передаем ее в переменную х1
y1 = Rect.TopLeft().y;
// определяем координату Y левой верхней точки прямоугольника Rect
// и передаем ее в переменную y1
x2 = Rect.BottomRight().x;
// определяем координату Х правой нижней точки прямоугольника
// Rect и передаем ее в переменную х2
y2 = Rect.BottomRight().y;
// определяем координату Y правой нижней точки прямоугольника
// Rect и передаем ее в переменную y2
int w, h;
w = (x2-x1)/3;
// определение ширины изображаемого линиями прямоугольника
h = (y2 - y1)/2;
// определение высоты изображаемого линиями прямоугольника
CPen Pen(PS_SOLID, 2, RGB(0,0,255)); // инициализация пера
MyDC.SelectObject(&Pen);
// выбор созданного пера в качестве активного
int x0, y0;
x0 = x1+(x2-x1)/2-w/2;
// определяем координату Х левой верхней точки прямоугольника
y0 = y1+(y2-y1)/2-h/2;
// определяем координату Y левой верхней точки прямоугольника
MyDC.MoveTo(x0, y0); // перемещаем перо в найденную точку
MyDC.LineTo(x0+w, y0);
//изображаем верхнюю линию прямоугольника
MyDC.LineTo (x0+w, y0+h);
//изображаем правую линию прямоугольника
MyDC.LineTo (x0, y0+h);
//изображаем нижнюю линию прямоугольника
MyDC.LineTo (x0, y0); //изображаем левую линию прямоугольника
}
При работе программы в элементе Static Text получаем изображения, представленные на рис. 19, 20.
Рис. 19. Результат работы первой функции
Рис. 20. Результат работы второй функции
Контрольные вопросы
1. Какой класс был использован для построения изображения в вашей программе? Какие именно методы этого класса и каковы их параметры?
2. Какие методы классов CRect и CPoint были использованы в программе?
3. Какие инструменты рисования потребовалось создать при разработке приложения? Какие параметры задают при создании инструментов рисования?
4. Как сделать перо (или кисть) активным?
5. Каким образом была осуществлена привязка к определенному элементу диалога для вывода графики?
Список литературы
1. Шилдт Г. Справочник программиста по С / С ++ / Пер. с англ.: Учебное пособие. – М.: Издательский дом «Вильямс», 2012. – 448 с.
2. Дерк Луис. С и С ++. Справочник/ Пер. с нем. – М.: Восточная книжная компания, 2007. – 592 с.
3. Visual C ++ 5.0. Руководство разработчика / Пер. с англ. / Д. Беннет, С. Маконин, В.В. Мейфилд и др. – Киев; М.; СПб.: Диалектика, 2008. – 768 с.
Дата добавления: 2015-07-11; просмотров: 93 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Этапы выполнения работы | | | Задание 4. |