обновление данных

Тема в разделе "MS Visual C++", создана пользователем Artur1987, 10 сен 2007.

  1. Artur1987

    Artur1987 Active Member

    Регистрация:
    31 мар 2007
    Сообщения:
    31
    Симпатии:
    0
    Возникла такая проблема. В программе можно рисовать прямоугольники, а толщина линии задаётся в диалоговом окне,вызывающемся из меню. Почему -то не происходит обновления данных из диалога , и толщина линии (m_uWidth) не меняется.вот код:

    void CMyPainterView::OnMouseMove(UINT nFlags, CPoint point)
    {
    UpdateData(true);

    CDC* pDC=GetDC();
    MyDialog dlg;
    CPen Pen2;

    Pen2.CreatePen(PS_SOLID,dlg.m_uWidth,RGB(0,0,0));

    pDC->SelectObject(Pen2);
    pDC->Rectangle(FirstPoint.x,FirstPoint.y,point.x,point.y);

    ReleaseDC(pDC);

    UpdateData(false);
    CView::OnMouseMove(nFlags, point);
    }


    А это на кнопку ОК в диалоге:

    void MyDialog::OnOK()
    {
    UpdateData(true);
    CDialog::OnOK();
    UpdateData(false);
    }

    m_uWidth не меняется,а остаются такой какая задана по умолчанию в диалоге. Подскажите плз,что не так.
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Так а что ты хотел? При каждом движении мышкой создается диалог и ширина инициализируется значением по умолчанию. Далее этой шириной и происходит рисование.
    Диалог нужно создать только один раз (например через меню), получить от него значение ширины, сохранив в некоторую переменную, которую далее использовать при рисовании.
     
  3. Artur1987

    Artur1987 Active Member

    Регистрация:
    31 мар 2007
    Сообщения:
    31
    Симпатии:
    0
    :) блин,я понял) спасибо:) :lol:
     
Загрузка...

Поделиться этой страницей