Урок VIII

Проектирование диалоговой панели

Идем дальше!

  • В операторе условия проверяется, что если была нажата клавиша OK, то присвоить значение выбранного цвета переменной m_PenColor.
  • Затем вы создаете объект кисти, создаете сплошную кисть цветом m_PenColor, затем закрашиваете индикатор выбранным цветом и типом кисти.
  • Теперь вам осталось изменить функцию OnLButtonDown, добавить в нее код для создания пера с выбранным цветом.
  • В уроке №3 вы уже узнали, как создавать перья. Теперь поупражняемся над этим.
  • Добавьте переменную m_Pen с типом CPen, доступом Private в класс CPaintORamaDlg.
  • Измените функцию OnLButtonDown следующим образом:

    BOOL CPaintORamaDlg::OnLButtonDown(UINT nFlags, CPoint point)
    {

    .....

    //Проверить было ли нажатие внутри области рисования.
    if(m_Canvas.PtInRect(point))
    {
    //Присвоить координаты начала двум переменным
    m_LineStart= point;
    m_LineEnd=point;

    /////-Ваш код начинается здесь-///

    m_Pen.DeleteObject();
    m_Pen.CreatePen(PS_SOLID, 1, m_PenColor);

    /////-Ваш код заканчивается здесь-/////

    //Захватить мышь
    SetCapture();
    }

    }

  • Первый оператор удаляет предыдущий объект, это нужно для того, чтобы ваша программа не проглючила при частом повторе операций рисования.
  • Потом создается новый с параметрами :
    1) PS_SOLID - сплошное пероь.
    2) 1 - размер пера.
    3) m_PenColor - цвет пера.

  • Осталось добавить код который будет выбирать перо.
  • Откройте функцию OnMouseMove, модифицируйте ее следующим образом:

    void CPaintORamaDlg::OnMouseMove(UINT nFlags, CPoint point)
    {
    if( (nFlags & MK_LBUTTON) && m_Canvas.PtInRect(point))
    {

    //Получить указатель на контекст устройства
    CClientDC dc(this);

    ////-Ваш код начинается здесь-////

    dc.SelectObject(&m_Pen);

    ////-Ваш код закачивается здесь-////

    //Присвоить координаты щелчка переменной m_LineEnd
    m_LineEnd= point;

    //Нарисовать линию
    dc.MoveTo(m_LineStart);
    dc.LineTo(m_LineEnd)

    /*Присвоить текущее переменной m_LineStart значение позиции курсора*/
    m_LineStart=m_LineEnd;
    }

    }

  • Добавленный орператор включает пероь. Запустите программу и попробуйте выбирать любой цвет и нарисовать что-нибудь.



    Добавление возможности выбора размера пера.
    <-Назад || Дальше ->

    [1] [2] [3] [4] [5] [6] [7] [8] [9]


  • На главную















    Радио для всех
    ©
    Научно-популярный образовательный ресурс


    Создать сайт бесплатно