Иллюстрированный самоучитель по Visual Studio.Net

фиброцементные панели коношима каталог цена. | Купить зоомагазин на http://zoodv.ru. | xiaomi mi band 2 купить Запрос запущен. Идет покупка ссылок н/д н/д 1478 н/д ТОП 3 2 0 0 0 pro НК Go | На trudyagadv.ru мотобур купить. | Обучение бизнес тренинги по продажам тренинг роста. |

Обработка сообщений от элементов управления - часть 3


m_cBlue.ChangeColor(RGB(0, 0, m_nBlue));

UpdateColor ();

}

Введите тело вспомогательной функции, которая вычисляет интегральный цвет и вносит изменения, перекрашивая окно диалога IDC_COLOR, и с помощью документа текущий полигон в окне CDrawView:

void CPolyDlg::UpdateColor()

{

COLORREF clr = RGB (m_riRed,m_nGreen,m_nBlue) ;

m_cColor.ChangeColor(clr) ;

m_pDoc->m_Poly.m_BrushColor = clr;

m_pDoc->UpdateDrawView();

}

С помощью Studio.Net введите в класс диалога реакции на уведомляющие сообщения (BN_CLICKED) о нажатии кнопок выбора стандартных геометрий для полигонов (IDCJTRI, IDC_PENT и IDC_STAR). В них мы с помощью техники обратного указателя вновь обращаемся к документу и используем его данные и методы для замены координат точек текущего полигона:

void CPolyDlg::OnClickedTri(void)

{

m_pDoc->m_Poly.MakeTria() ;

m_pDoc->UpdateDrawView() ;

}

void CPolyDlg::OnClickedPent(void)

{

m_pDoc->m_Poly.MakePent() ;

m_pDoc->UpdateDrawView() ;

}

void CPolyDlg::OnClickedStar(void)

{

m_pDoc->m_Poly.MakeStar() ;

m_pDoc->UpdateDrawView();

}

Измените тело конструктора диалогового класса, с тем чтобы при открытии диалога он смог запомнить обратный указатель (адрес документа) и все его элементы были правильно инициализированы:

CPolyDlg::CPolyDlg(CTreeDoc* p)

: CDialog (CPolyDlg::IDD, 0)

{

m_pDoc = p;

m_nPen = p->m_Poly.m_nPenWidth;

//====== Расщепляем цвет фона текущего полигона

COLORREF brush = p->m_Poly.m_BrushColor;

m_nRed = GetRValue(brush); // на три компонента

m_nGreen = GetGValue(brush);

m_nBlue = GetBValue(brush) ;

m_bScroll = false; // Ползунки в покое




Начало  Назад  Вперед