Проектирование диалоговой панели
Когда же это кончится?!
Таблица 2.0
Объект | Свойство | Установка |
List Box | ID | IDC_BRUSHSTYLE |
Sort | Отключено, стрница Styles | |
Static Text | ID | IDC_STATIC |
Caption | &Styles | |
Group Box | ID | IDC_STATIC |
Caption | &Brush Styles | |
Picture | ID | IDC_BRUSHCOLOR |
Type | Rectangle | |
Color | Black | |
Sunken | Отмечен, страница Styles | |
Notify | отмечен, страница Styles | |
Static Text | ID | IDC_STATIC |
Caption | &Color | |
Picture | ID | IDC_BRUSHPREVIEW |
Type | Rectangle | |
Color | Black | |
Sunken | Отмечен, страница Styles | |
Notify | отмечен, страница Styles | |
Static Text | ID | IDC_STATIC |
Caption | &PreView |
Тип | Название | Описание |
CBrush | m_Brush | Объект кисти |
COLORREF | m_BrushColor | Цвет заливки |
CRect | m_BrushColorSwatch | Координаты индикатора цвета |
CRect | m_BrushPreviewSwatch | Координаты просмотра |
int | m_BrushStyle | Стиль закраски |
//Получить указатель на элемент управления
CWnd*
pBrushColor=GetDlgItem(IDC_BRUSHCOLOR);
//Получить координаты элемента
управления
pBrushColor->GetWindowRect(&m_BrushColorSwatch);
//Изменить координаты относительно клиентской
области
ScreenToClient(&m_BrushColorSwatch);
//Cузить рамку
m_BrushColorSwatch.DeflateRect(2,2,1,1);
//Получить указатель на элемент управления
CWnd*
pPreviewColor=GetDlgItem(IDC_BRUSHPREVIEW);
//Получить координаты элемента
управления
pPreviewColor->GetWindowRect(&m_BrushPreviewSwatch);
//Изменить координаты относительно клиентской
области
ScreenToClient(&m_BrushPreviewSwatch);
//Cузить рамку
m_BrushPreviewSwatch.DeflateRect(2,2,1,1);
//Установить начальный цвет кисти
m_BrusColor=RGB(0,0,0);
//Создать белую
кисть
m_Brush.CreateStockObject(WHITE_BRUSH);
//Добавить названия стилей в элемент
ListBox
m_BrushStyleList.AddString("(none)");
m_BrushStyleList.AddString("Solid");
m_BrushStyleList.AddString("LL-UR
Diagonal");
m_BrushStyleList.AddString("UL-LR
Diagonal");
m_BrushStyleList.AddString("Grid");
m_BrushStyleList.AddString("Grid
Diagonal");
m_BrushStyleList.AddString("Horizontal");
m_BrushStyleList.AddString("Vertical");
m_BrushStyleList.AddString("White");
m_BrushStyleList.AddString("Light
Gray");
m_BrushStyleList.AddString("Medium
Gray");
m_BrushStyleList.AddString("Dark
Gray");
m_BrushStyleList.AddString("Black");
//Установить начальную позицию курсора на 8
элементе
m_BrushStyleList.SetCurSel(8);
//Удалить предыдущий объект
m_Brush.DeleteObject();
//Получить номер выбранной позиции
int
style=m_BrushStyleList.GetCurSel();
//По номеру создать кисть, с выбранным
стилем
switch(style)
{
case
0:
m_Brush.CreateStockObject(NULL_BRUSH);
break;
case 1:
m_Brush.CreateSolidBrush(m_BrushColor);
break;
case 2:
m_Brush.CreateHatchBrush(HS_BDIAGONAL,
m_BrushColor);
break;
case 3:
m_Brush.CreateHatchBrush(HS_FDIAGONAL,
m_BrushColor);
break;
case 4:
m_Brush.CreateHatchBrush(HS_CROSS,
m_BrushColor);
break;
case 5:
m_Brush.CreateHatchBrush(HS_DIAGCROSS,
m_BrushColor);
break;
case 6:
m_Brush.CreateHatchBrush(HS_HORIZONTAL,
m_BrushColor);
break;
case 7:
m_Brush.CreateHatchBrush(HS_VERTICAL,
m_BrushColor);
break;
case 9:
m_Brush.CreateStockObject(LTGRAY_BRUSH);
break;
case
10:
m_Brush.CreateStockObject(GRAY_BRUSH);
break;
case 11:
m_Brush.CreateStockObject(DKGRAY_BRUSH);
break;
case 12:
m_Brush.CreateStockObject(BLACK_BRUSH);
break;
//Создать кисть по
умолчанию
default:
m_Brush.CreateStockObject(WHITE_BRUSH);
break;
}
//Вызвать функцию зарисовки окна
Preview
PaintBrushPreview();
void CPaintORamaDlg::PaintBrushPreview()
{
////-Ваш код начинается здесь-////
CClientDC
dc(this);
dc.FillRect(&m_BrushPreviewSwatch,&m_Brush);
////-Ваш код заканчивается здесь-////
}
void CPaintORamaDlg::OnBrushcolor()
{
////-Ваш код
начинается здесь-////
//Создать объект диалогового окна выбор цвета
CColorDialog
dlg(m_BrushColor);
/*Если была нажата кнопка ОК, то закрасить индикатор
цвета*/
if(dlg.DoModal()==IDOK)
{
m_BrushColor=dlg.GetColor();
CClientDC
dc(this);
CBrush b(m_BrushColor);
//Закрашивание индикатора цвета
кисти
dc.FillRect(&m_BrushColorSwatch,&b);
}
/*Запустить функцию создания кисти, выбранным
цветом*/
OnSelchangeBrushstyle();
////-Ваш код заканчивается здесь-////
}
Радио для всех © |